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 (
    43816, 43815, 43814, 43813, 43812, 43811, 
    43810, 43809, 43808, 43807, 43806, 
    43805, 43804, 43803, 43802, 43598, 
    43597, 43596, 43595, 43594
  ) 
  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.00060

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_product_prices range usergroup,product_id,lower_limit,usergroup_id usergroup 9 40 Using where

Result

product_id price
43594 1.69000000
43595 1.69000000
43596 1.69000000
43597 1.69000000
43598 8.99000000
43802 1.69000000
43803 1.69000000
43804 1.69000000
43805 1.69000000
43806 1.69000000
43807 1.69000000
43808 1.69000000
43809 1.69000000
43810 1.69000000
43811 1.69000000
43812 1.69000000
43813 1.69000000
43814 1.69000000
43815 1.69000000
43816 1.69000000