SELECT 
  cscart_ult_product_prices.product_id, 
  MIN(
    IF(
      cscart_ult_product_prices.percentage_discount = 0, 
      cscart_ult_product_prices.price, 
      cscart_ult_product_prices.price - (
        cscart_ult_product_prices.price * cscart_ult_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_ult_product_prices 
WHERE 
  cscart_ult_product_prices.product_id IN (
    430, 9470, 10705, 9457, 8862, 8860, 11485, 
    8861, 10945, 8864, 10188, 10353, 8875, 
    8869, 10355, 10222, 8870, 8868, 1655, 
    516, 10078, 8863, 388, 395, 8873, 10163, 
    10212, 523, 517, 8871, 10210, 9821, 
    8877, 9823, 10206, 9871, 396, 9825, 
    10164, 10165, 10183, 10181, 10961, 
    1646
  ) 
  AND cscart_ult_product_prices.lower_limit = 1 
  AND cscart_ult_product_prices.company_id = 3 
  AND cscart_ult_product_prices.usergroup_id IN (0, 0, 1) 
GROUP BY 
  cscart_ult_product_prices.product_id

Query time 0.00110

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_ult_product_prices range usergroup,product_id,company_id,lower_limit,usergroup_id usergroup 13 88 Using index condition

Result

product_id price
388 910.000000
395 2329.000000
396 5046.000000
430 0.000000
516 660.000000
517 718.000000
523 776.000000
1646 2728.000000
1655 2089.000000
8860 849.000000
8861 1042.000000
8862 1016.000000
8863 1248.000000
8864 1391.000000
8868 1882.000000
8869 3791.000000
8870 3791.000000
8871 2071.000000
8873 2227.000000
8875 2154.000000
8877 2925.000000
9457 953.000000
9470 1142.000000
9821 1316.000000
9823 1617.000000
9825 1377.000000
9871 1435.000000
10078 0.000000
10163 2629.000000
10164 5346.000000
10165 3028.000000
10181 1916.000000
10183 2116.000000
10188 1160.000000
10206 4097.000000
10210 5000.000000
10212 1613.000000
10222 1543.220000
10353 1460.000000
10355 1360.000000
10705 0.000000
10945 1016.000000
10961 1543.220000
11485 3000.000000