SELECT 
  p.product_id, 
  ifnull(
    count(dp.post_id), 
    0
  ) as discussion_amount_posts 
FROM 
  cscart_discussion 
  INNER JOIN cscart_products as p ON (
    cscart_discussion.object_id = p.product_id
  ) 
  INNER JOIN cscart_discussion_posts as dp ON (
    cscart_discussion.thread_id = dp.thread_id 
    AND cscart_discussion.object_type = 'P' 
    AND cscart_discussion.company_id = 1
  ) 
WHERE 
  dp.status = 'A' 
  and p.product_id in (
    232, 298, 309, 337, 339, 405, 427, 428, 
    429, 430, 431, 520, 521, 522, 523, 550, 
    551, 552, 553, 554, 555, 556, 1562, 1563, 
    1564, 1565, 1566, 1567, 1568, 1569, 
    1570, 1755, 1756, 1757, 1758, 1759, 
    1760, 1761, 1762, 1763, 1764, 1765, 
    1766, 1767, 1768, 1769, 1770, 1771, 
    3314, 3315, 3478, 3479, 3480, 5556, 
    5473, 5475, 533, 1843, 531, 1841, 536, 
    1840, 486, 534, 532, 1842, 292, 535
  ) 
GROUP BY 
  p.product_id

Query time 0.00029

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "message": "Impossible WHERE noticed after reading const tables"
    }
  }
}