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 (
    590, 591, 592, 593, 594, 595, 596, 597, 
    598, 599, 600, 601, 602, 604, 605, 606, 
    607, 608, 609, 610, 611, 612, 613, 614
  ) 
  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 (590,591,592,593,594,595,596,597,598,599,600,601,602,604,605,606,607,608,609,610,611,612,613,614)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
590 22000.00000000
591 0.00000000
592 82000.00000000
593 0.00000000
594 0.00000000
595 88800.00000000
596 0.00000000
597 0.00000000
598 0.00000000
599 0.00000000
600 0.00000000
601 0.00000000
602 0.00000000
604 0.00000000
605 0.00000000
606 0.00000000
607 0.00000000
608 0.00000000
609 0.00000000
610 0.00000000
611 0.00000000
612 0.00000000
613 0.00000000
614 0.00000000