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 (
    489, 3654, 3655, 3664, 3657, 467, 3663, 
    491, 490, 459, 506, 468, 488, 6024, 505, 
    504, 492, 4978, 3739, 4979, 4981, 5916, 
    5921, 5917
  ) 
  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.00058

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": 31,
      "filtered": 93.46080017,
      "index_condition": "cscart_product_prices.product_id in (489,3654,3655,3664,3657,467,3663,491,490,459,506,468,488,6024,505,504,492,4978,3739,4979,4981,5916,5921,5917)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
459 30.950000
467 25.280000
468 26.200000
488 26.160000
489 41.840000
490 26.910000
491 34.870000
492 31.850000
504 25.590000
505 38.300000
506 30.770000
3654 28.960000
3655 25.040000
3657 34.890000
3663 36.290000
3664 33.030000
3739 7.710000
4978 22.030000
4979 29.930000
4981 35.400000
5916 37.790000
5917 22.470000
5921 1.350000
6024 19.950000