SELECT 
  cscart_product_prices.product_id, 
  MIN(
    IF(
      cscart_product_prices.percentage_discount = 0, 
      cscart_product_prices.price, 
      cscart_product_prices.price - (
        cscart_product_prices.price * cscart_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_product_prices 
WHERE 
  cscart_product_prices.product_id IN (
    566, 567, 568, 569, 570, 571, 572, 573, 
    574, 575, 576, 577, 578, 579, 580, 581, 
    582, 583, 584, 585, 586, 587, 588, 589
  ) 
  AND cscart_product_prices.lower_limit = 1 
  AND cscart_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  cscart_product_prices.product_id

Query time 0.00111

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_product_prices",
      "access_type": "range",
      "possible_keys": ["usergroup", "product_id", "lower_limit", "usergroup_id"],
      "key": "product_id",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 24,
      "filtered": 4.897957802,
      "index_condition": "cscart_product_prices.product_id in (566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
566 0.00000000
567 0.00000000
568 0.00000000
569 0.00000000
570 0.00000000
571 0.00000000
572 0.00000000
573 0.00000000
574 0.00000000
575 0.00000000
576 0.00000000
577 128000.00000000
578 384000.00000000
579 105000.00000000
580 420000.00000000
581 35000.00000000
582 0.00000000
583 534000.00000000
584 0.00000000
585 26000.00000000
586 0.00000000
587 32000.00000000
588 260000.00000000
589 0.00000000