SELECT 
  cscart_ult_product_prices.product_id, 
  MIN(
    IF(
      cscart_ult_product_prices.percentage_discount = 0, 
      cscart_ult_product_prices.price, 
      cscart_ult_product_prices.price - (
        cscart_ult_product_prices.price * cscart_ult_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_ult_product_prices 
WHERE 
  cscart_ult_product_prices.product_id IN (
    10167, 10152, 10168, 10148, 10145, 10170, 
    10147, 10143, 10146, 10153, 10144, 
    10150, 10151, 10149, 10154, 10156, 
    10169, 10171
  ) 
  AND cscart_ult_product_prices.lower_limit = 1 
  AND cscart_ult_product_prices.company_id = 3 
  AND cscart_ult_product_prices.usergroup_id IN (0, 0, 1) 
GROUP BY 
  cscart_ult_product_prices.product_id

Query time 0.00067

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_ult_product_prices range usergroup,product_id,company_id,lower_limit,usergroup_id usergroup 13 36 Using index condition

Result

product_id price
10143 44.000000
10144 40.000000
10145 41.000000
10146 99.000000
10147 104.000000
10148 94.000000
10149 89.000000
10150 104.000000
10151 99.000000
10152 99.000000
10153 99.000000
10154 99.000000
10156 99.000000
10167 99.000000
10168 99.000000
10169 99.000000
10170 44.000000
10171 42.000000