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 (
    48834, 48623, 48625, 48939, 48172, 48756, 
    48630, 48158, 48632, 48159, 48626, 
    48633, 49182, 50524, 49014, 50527
  ) 
  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.00344

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_product_prices",
          "access_type": "range",
          "possible_keys": [
            "usergroup",
            "product_id",
            "lower_limit",
            "usergroup_id"
          ],
          "key": "product_id",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "rows": 16,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (48834,48623,48625,48939,48172,48756,48630,48158,48632,48159,48626,48633,49182,50524,49014,50527)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
48158 149000.0000
48159 149000.0000
48172 149000.0000
48623 445000.0000
48625 170000.0000
48626 180000.0000
48630 445000.0000
48632 55000.0000
48633 35000.0000
48756 186000.0000
48834 210000.0000
48939 5400000.0000
49014 120000.0000
49182 550000.0000
50524 430000.0000
50527 275000.0000