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 (
    31069, 31070, 31071, 31072, 31074, 31077, 
    31079, 31080, 31081, 31082, 31083, 
    31086, 31087, 31088, 31089, 31091
  ) 
  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.00059

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "41.21"
    },
    "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": 18,
        "rows_produced_per_join": 3,
        "filtered": "19.99",
        "index_condition": "(`portal`.`q_product_prices`.`product_id` in (31069,31070,31071,31072,31074,31077,31079,31080,31081,31082,31083,31086,31087,31088,31089,31091))",
        "cost_info": {
          "read_cost": "40.49",
          "eval_cost": "0.72",
          "prefix_cost": "41.21",
          "data_read_per_join": "86"
        },
        "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
31069 36.000000
31070 36.000000
31071 36.000000
31072 72.000000
31074 36.000000
31077 126.000000
31079 36.000000
31080 36.000000
31081 36.000000
31082 36.000000
31083 36.000000
31086 36.000000
31087 36.000000
31088 99.000000
31089 54.000000
31091 63.000000