SELECT 
  jmj_product_prices.product_id, 
  COALESCE(
    jmj_master_products_storefront_min_price.price, 
    MIN(
      IF(
        jmj_product_prices.percentage_discount = 0, 
        jmj_product_prices.price, 
        jmj_product_prices.price - (
          jmj_product_prices.price * jmj_product_prices.percentage_discount
        )/ 100
      )
    )
  ) AS price 
FROM 
  jmj_product_prices 
  LEFT JOIN jmj_master_products_storefront_min_price ON jmj_master_products_storefront_min_price.product_id = jmj_product_prices.product_id 
  AND jmj_master_products_storefront_min_price.storefront_id = 1 
WHERE 
  jmj_product_prices.product_id IN (
    1705, 1713, 1702, 1719, 1723, 1696, 1699, 
    1707, 1697, 1735, 1695, 1686, 1721, 
    1636, 1627, 1638, 1640, 1618, 1621, 
    1632, 1620, 1624, 1616, 1613, 1639
  ) 
  AND jmj_product_prices.lower_limit = 1 
  AND jmj_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  jmj_product_prices.product_id

Query time 0.00184

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "95.86"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "8.38"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "jmj_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": 42,
            "rows_produced_per_join": 8,
            "filtered": "19.94",
            "index_condition": "(`jmj_test`.`jmj_product_prices`.`product_id` in (1705,1713,1702,1719,1723,1696,1699,1707,1697,1735,1695,1686,1721,1636,1627,1638,1640,1618,1621,1632,1620,1624,1616,1613,1639))",
            "cost_info": {
              "read_cost": "82.13",
              "eval_cost": "1.68",
              "prefix_cost": "83.81",
              "data_read_per_join": "201"
            },
            "used_columns": [
              "product_id",
              "price",
              "percentage_discount",
              "lower_limit",
              "usergroup_id"
            ],
            "attached_condition": "((`jmj_test`.`jmj_product_prices`.`lower_limit` = 1) and (`jmj_test`.`jmj_product_prices`.`usergroup_id` in (0,1)))"
          }
        },
        {
          "table": {
            "table_name": "jmj_master_products_storefront_min_price",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "100.00",
            "using_join_buffer": "Block Nested Loop",
            "cost_info": {
              "read_cost": "2.00",
              "eval_cost": "1.68",
              "prefix_cost": "87.49",
              "data_read_per_join": "134"
            },
            "used_columns": [
              "storefront_id",
              "product_id",
              "price"
            ],
            "attached_condition": "<if>(is_not_null_compl(jmj_master_products_storefront_min_price), ((`jmj_test`.`jmj_master_products_storefront_min_price`.`storefront_id` = 1) and (`jmj_test`.`jmj_master_products_storefront_min_price`.`product_id` = `jmj_test`.`jmj_product_prices`.`product_id`)), true)"
          }
        }
      ]
    }
  }
}

Result

product_id price
1613 825.00000000
1616 399.00000000
1618 625.00000000
1620 1529.00000000
1621 600.00000000
1624 799.00000000
1627 1049.00000000
1632 999.00000000
1636 649.00000000
1638 1249.00000000
1639 1499.00000000
1640 1099.00000000
1686 549.00000000
1695 499.00000000
1696 449.00000000
1697 747.00000000
1699 786.00000000
1702 1484.00000000
1705 1627.00000000
1707 5099.00000000
1713 999.00000000
1719 566.00000000
1721 1268.00000000
1723 674.00000000
1735 909.00000000