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 (
    16664, 16665, 16666, 16667, 16668, 16669, 
    16670, 16671, 16672, 16673, 16674, 
    16675, 16676, 16677, 16678, 16679, 
    16680, 16697
  ) 
  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.00127

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": 18,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (16664,16665,16666,16667,16668,16669,16670,16671,16672,16673,16674,16675,16676,16677,16678,16679,16680,16697)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
16664 180000.0000
16665 180000.0000
16666 180000.0000
16667 180000.0000
16668 180000.0000
16669 180000.0000
16670 180000.0000
16671 180000.0000
16672 180000.0000
16673 180000.0000
16674 180000.0000
16675 180000.0000
16676 180000.0000
16677 180000.0000
16678 180000.0000
16679 180000.0000
16680 180000.0000
16697 180000.0000