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 (
    103742, 103741, 103740, 103739, 103738, 
    103737, 103736, 103735, 103734, 103733, 
    103732, 103731, 103730, 103729, 103728, 
    103727, 103717, 103716, 103715, 103714
  ) 
  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.00086

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
103714 1.69000000
103715 1.69000000
103716 1.69000000
103717 8.99000000
103727 1.69000000
103728 1.69000000
103729 1.69000000
103730 1.69000000
103731 1.69000000
103732 1.69000000
103733 1.69000000
103734 1.69000000
103735 1.69000000
103736 1.69000000
103737 1.69000000
103738 1.69000000
103739 1.69000000
103740 1.69000000
103741 1.69000000
103742 1.69000000