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 (
    401017, 401051, 401066, 401577, 401589, 
    401594, 401596, 401600, 401618, 402344, 
    402360, 402362, 402366, 402378, 402908, 
    403676, 403683, 403717, 404275, 404977, 
    405004, 405015, 405027, 405552
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00120

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "19.34"
    },
    "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": 24,
        "rows_produced_per_join": 2,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (401017,401051,401066,401577,401589,401594,401596,401600,401618,402344,402360,402362,402366,402378,402908,403676,403683,403717,404275,404977,405004,405015,405027,405552))",
        "cost_info": {
          "read_cost": "19.10",
          "eval_cost": "0.24",
          "prefix_cost": "19.34",
          "data_read_per_join": "57"
        },
        "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
401017 20.00000000
401051 2.45000000
401066 18.00000000
401577 20.00000000
401589 2.45000000
401594 2.45000000
401596 18.00000000
401600 18.00000000
401618 18.00000000
402344 18.00000000
402360 18.00000000
402362 18.00000000
402366 2.45000000
402378 18.00000000
402908 18.00000000
403676 18.00000000
403683 18.00000000
403717 18.00000000
404275 18.00000000
404977 20.00000000
405004 18.00000000
405015 2.45000000
405027 18.00000000
405552 2.45000000