SELECT 
  q_product_prices.product_id, 
  MIN(
    IF(
      q_product_prices.percentage_discount = 0, 
      q_product_prices.price, 
      q_product_prices.price - (
        q_product_prices.price * q_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  q_product_prices 
WHERE 
  q_product_prices.product_id IN (
    31154, 31155, 31156, 31157, 31158, 10387, 
    10388, 10389, 10390, 10391, 10392, 
    10393, 10395, 10396, 10397, 10398
  ) 
  AND q_product_prices.lower_limit = 1 
  AND q_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  q_product_prices.product_id

Query time 0.00058

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "46.81"
    },
    "grouping_operation": {
      "using_filesort": false,
      "table": {
        "table_name": "q_product_prices",
        "access_type": "range",
        "possible_keys": [
          "usergroup",
          "product_id",
          "lower_limit",
          "usergroup_id"
        ],
        "key": "product_id",
        "used_key_parts": [
          "product_id"
        ],
        "key_length": "3",
        "rows_examined_per_scan": 22,
        "rows_produced_per_join": 4,
        "filtered": "19.99",
        "index_condition": "(`portal`.`q_product_prices`.`product_id` in (31154,31155,31156,31157,31158,10387,10388,10389,10390,10391,10392,10393,10395,10396,10397,10398))",
        "cost_info": {
          "read_cost": "45.93",
          "eval_cost": "0.88",
          "prefix_cost": "46.81",
          "data_read_per_join": "105"
        },
        "used_columns": [
          "product_id",
          "price",
          "percentage_discount",
          "lower_limit",
          "usergroup_id"
        ],
        "attached_condition": "((`portal`.`q_product_prices`.`lower_limit` = 1) and (`portal`.`q_product_prices`.`usergroup_id` in (0,1)))"
      }
    }
  }
}

Result

product_id price
10387 419.000000
10388 449.000000
10389 5299.000000
10390 89.000000
10391 129.000000
10392 149.000000
10393 649.000000
10395 639.000000
10396 649.000000
10397 399.000000
10398 155.000000
31154 36.000000
31155 81.000000
31156 36.000000
31157 36.000000
31158 36.000000