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 (
    101603, 101602, 101601, 101599, 101598, 
    101596, 101595, 101594, 101593, 101592, 
    101591, 101590, 101585, 101583, 101582, 
    101544, 102132, 102131, 102130, 102129
  ) 
  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.00056

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
101544 1.69000000
101582 1.69000000
101583 1.69000000
101585 1.69000000
101590 1.69000000
101591 1.69000000
101592 1.69000000
101593 1.69000000
101594 1.69000000
101595 1.69000000
101596 1.69000000
101598 1.69000000
101599 1.69000000
101601 1.69000000
101602 1.69000000
101603 1.69000000
102129 1.69000000
102130 1.69000000
102131 1.69000000
102132 1.69000000