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 (
    103857, 103856, 103855, 103854, 103853, 
    103852, 103851, 103850, 103849, 103848, 
    103847, 103846, 103845, 103844, 103843, 
    103842, 103841, 103840, 103839, 103838
  ) 
  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.00210

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
103838 1.69000000
103839 1.69000000
103840 1.69000000
103841 1.69000000
103842 1.69000000
103843 1.69000000
103844 1.69000000
103845 1.69000000
103846 1.69000000
103847 1.69000000
103848 1.69000000
103849 1.69000000
103850 1.69000000
103851 1.69000000
103852 1.69000000
103853 1.69000000
103854 1.69000000
103855 1.69000000
103856 1.69000000
103857 1.69000000