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 (
    102140, 102139, 102138, 102137, 104577, 
    102089, 102088, 102087, 104332, 104331, 
    104330, 104329, 104578, 104542, 104541, 
    104540, 104490, 104489, 102082, 102075
  ) 
  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.00079

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
102075 1.69000000
102082 1.69000000
102087 1.69000000
102088 1.69000000
102089 1.69000000
102137 1.69000000
102138 1.69000000
102139 1.69000000
102140 1.69000000
104329 1.69000000
104330 1.69000000
104331 1.69000000
104332 1.69000000
104489 1.69000000
104490 1.69000000
104540 1.69000000
104541 1.69000000
104542 1.69000000
104577 1.69000000
104578 1.69000000