SELECT 
  product_prices.product_id, 
  MIN(
    IF(
      product_prices.percentage_discount = 0, 
      product_prices.price, 
      product_prices.price - (
        product_prices.price * product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  product_prices 
WHERE 
  product_prices.product_id IN (
    61531, 61355, 61660, 61673, 61532, 61671, 
    61688, 40769, 40774, 40778, 40785, 
    61699, 40810, 62983, 43856, 40771, 
    40789, 61704, 61690, 310237, 310332, 
    310242, 310266, 310338, 310236, 310335, 
    310329, 310330, 310336, 310241, 310328, 
    310334, 310331, 310333, 310238, 310239, 
    310240, 310337
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00151

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "31.41"
    },
    "grouping_operation": {
      "using_filesort": false,
      "table": {
        "table_name": "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": 38,
        "rows_produced_per_join": 3,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (61531,61355,61660,61673,61532,61671,61688,40769,40774,40778,40785,61699,40810,62983,43856,40771,40789,61704,61690,310237,310332,310242,310266,310338,310236,310335,310329,310330,310336,310241,310328,310334,310331,310333,310238,310239,310240,310337))",
        "cost_info": {
          "read_cost": "31.03",
          "eval_cost": "0.38",
          "prefix_cost": "31.41",
          "data_read_per_join": "91"
        },
        "used_columns": [
          "id",
          "product_id",
          "price",
          "percentage_discount",
          "lower_limit",
          "usergroup_id"
        ],
        "attached_condition": "((`goimagine`.`product_prices`.`lower_limit` = 1) and (`goimagine`.`product_prices`.`usergroup_id` in (0,1)))"
      }
    }
  }
}

Result

product_id price
40769 36.00000000
40771 36.00000000
40774 35.00000000
40778 35.00000000
40785 35.00000000
40789 35.00000000
40810 35.00000000
43856 35.00000000
61355 20.00000000
61531 20.00000000
61532 20.00000000
61660 20.00000000
61671 20.00000000
61673 20.00000000
61688 20.00000000
61690 20.00000000
61699 20.00000000
61704 20.00000000
62983 20.00000000
310236 36.00000000
310237 36.00000000
310238 35.00000000
310239 35.00000000
310240 35.00000000
310241 35.00000000
310242 35.00000000
310266 35.00000000
310328 20.00000000
310329 20.00000000
310330 20.00000000
310331 20.00000000
310332 20.00000000
310333 20.00000000
310334 20.00000000
310335 20.00000000
310336 20.00000000
310337 20.00000000
310338 20.00000000