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 (
    40629, 79914, 40775, 40774, 40621, 40620, 
    40616, 40948, 40187, 40186, 40185, 
    40779, 40778, 40231, 40174, 79928, 
    40167, 40166, 40165, 40531, 40773, 
    40772, 40157, 40156, 40152, 40151, 
    40150, 40069, 40111, 40110, 40857, 
    40106, 40102, 40101, 40099, 40098, 
    40097, 40096, 40088, 40087, 40081, 
    40092, 40007, 40006, 40005, 39997, 
    39994, 39982, 39980, 39977, 39976, 
    39975, 39974, 39973, 39972, 39971, 
    39970, 39969, 39968, 39967, 39966, 
    39962, 39950, 79918, 40105, 39991, 
    39960, 39923, 39916, 39907, 39906, 
    91051, 91050, 91049, 91048, 91047, 
    91046, 91045, 91044, 91043
  ) 
  AND cscart_ult_product_prices.lower_limit = 1 
  AND cscart_ult_product_prices.company_id = 1 
  AND cscart_ult_product_prices.usergroup_id IN (0, 0, 1) 
GROUP BY 
  cscart_ult_product_prices.product_id

Query time 0.00105

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 1 Using where