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 (
    532, 623, 509, 897, 361, 512, 746, 740, 
    984, 707, 317, 745, 529, 834, 380, 1278, 
    436, 586, 596, 1075, 450, 743, 741, 449
  ) 
  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.00116

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 (532,623,509,897,361,512,746,740,984,707,317,745,529,834,380,1278,436,586,596,1075,450,743,741,449)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
317 0.00000000
361 0.00000000
380 0.00000000
436 0.00000000
449 0.00000000
450 0.00000000
509 0.00000000
512 0.00000000
529 0.00000000
532 0.00000000
586 0.00000000
596 0.00000000
623 0.00000000
707 0.00000000
740 0.00000000
741 0.00000000
743 0.00000000
745 0.00000000
746 0.00000000
834 0.00000000
897 0.00000000
984 0.00000000
1075 0.00000000
1278 72000.00000000