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 (
    1288, 1289, 1767, 1347, 665, 581, 299, 
    301, 1799, 1462, 1549, 1521, 1519, 1517, 
    1522, 1523, 1518, 1516, 1520, 30, 31, 
    1545, 1483, 409, 550, 840, 197, 68, 1180, 
    1205
  ) 
  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.00151

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": 30,
      "filtered": 6.122447491,
      "index_condition": "cscart_product_prices.product_id in (1288,1289,1767,1347,665,581,299,301,1799,1462,1549,1521,1519,1517,1522,1523,1518,1516,1520,30,31,1545,1483,409,550,840,197,68,1180,1205)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
30 37000.00000000
31 37000.00000000
68 80000.00000000
197 42000.00000000
299 37000.00000000
301 35000.00000000
409 36000.00000000
550 36000.00000000
581 35000.00000000
665 35000.00000000
840 36000.00000000
1180 24000.00000000
1205 22000.00000000
1288 21000.00000000
1289 21000.00000000
1347 0.00000000
1462 37000.00000000
1483 34000.00000000
1516 21000.00000000
1517 21000.00000000
1518 21000.00000000
1519 21000.00000000
1520 19000.00000000
1521 21000.00000000
1522 0.00000000
1523 21000.00000000
1545 35000.00000000
1549 27500.00000000
1767 0.00000000
1799 37000.00000000