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 (
    65438, 65436, 65439, 65432, 65450, 65451, 
    65433, 65472, 65448, 65434, 65452, 
    65441, 65435, 65476, 65475, 65477, 
    65473, 65956, 65891
  ) 
  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.00143

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_product_prices",
      "access_type": "range",
      "possible_keys": ["usergroup", "product_id", "lower_limit", "usergroup_id"],
      "key": "product_id",
      "key_length": "9",
      "used_key_parts": ["product_id", "usergroup_id", "lower_limit"],
      "rowid_filter": {
        "range": {
          "key": "lower_limit",
          "used_key_parts": ["lower_limit", "product_id", "usergroup_id"]
        },
        "rows": 38,
        "selectivity_pct": 1.408450704
      },
      "rows": 38,
      "filtered": 100,
      "index_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.product_id in (65438,65436,65439,65432,65450,65451,65433,65472,65448,65434,65452,65441,65435,65476,65475,65477,65473,65956,65891) and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
65432 405.000000
65433 435.000000
65434 385.000000
65435 415.000000
65436 390.000000
65438 385.000000
65439 405.000000
65441 385.000000
65448 445.000000
65450 450.000000
65451 445.000000
65452 465.000000
65472 490.000000
65473 550.000000
65475 515.000000
65476 505.000000
65477 515.000000
65891 484.000000
65956 588.000000