SELECT 
  SQL_CALC_FOUND_ROWS (
    CASE WHEN products.parent_product_id <> 0 THEN products.parent_product_id ELSE products.product_id END
  ) AS product_id, 
  descr1.product as product, 
  companies.company as company_name, 
  COALESCE(
    cscart_master_products_storefront_min_price.price, 
    MIN(
      IF(
        prices.percentage_discount = 0, 
        prices.price, 
        prices.price - (
          prices.price * prices.percentage_discount
        )/ 100
      )
    )
  ) as price, 
  GROUP_CONCAT(
    products.product_id 
    ORDER BY 
      products.parent_product_id ASC, 
      products.product_id ASC
  ) AS product_ids, 
  GROUP_CONCAT(
    products.product_type 
    ORDER BY 
      products.parent_product_id ASC, 
      products.product_id ASC
  ) AS product_types, 
  GROUP_CONCAT(
    products.parent_product_id 
    ORDER BY 
      products.parent_product_id ASC, 
      products.product_id ASC
  ) AS parent_product_ids, 
  products.product_type, 
  products.parent_product_id, 
  products.master_product_offers_count, 
  products.master_product_id, 
  products.company_id, 
  IF(
    products.age_verification = 'Y', 
    'Y', 
    IF(
      cscart_categories.age_verification = 'Y', 
      'Y', cscart_categories.parent_age_verification
    )
  ) as need_age_verification, 
  IF(
    products.age_limit > cscart_categories.age_limit, 
    IF(
      products.age_limit > cscart_categories.parent_age_limit, 
      products.age_limit, cscart_categories.parent_age_limit
    ), 
    IF(
      cscart_categories.age_limit > cscart_categories.parent_age_limit, 
      cscart_categories.age_limit, cscart_categories.parent_age_limit
    )
  ) as age_limit, 
  1 as instock_marker, 
  IF(
    products.product_type = 'C', 
    (
      SELECT 
        MAX(amount) 
      FROM 
        cscart_products 
      WHERE 
        parent_product_id = products.product_id
    ) > 0, 
    IF(
      IF(
        products.tracking = 'O', 
        (
          SELECT 
            MAX(amount) 
          FROM 
            cscart_product_options_inventory s_inventory 
          WHERE 
            s_inventory.product_id = products.product_id
        ) > 0, 
        products.amount > 0
      ), 
      1, 
      IF(products.tracking = 'D', 1, 0)
    )
  ) as instock_sorting 
FROM 
  cscart_products as products 
  LEFT JOIN cscart_product_descriptions as descr1 ON descr1.product_id = products.product_id 
  AND descr1.lang_code = 'en' 
  LEFT JOIN cscart_product_prices as prices ON prices.product_id = products.product_id 
  AND prices.lower_limit = 1 
  LEFT JOIN cscart_companies AS companies ON companies.company_id = products.company_id 
  INNER JOIN cscart_products_categories as products_categories ON products_categories.product_id = products.product_id 
  INNER JOIN cscart_categories ON cscart_categories.category_id = products_categories.category_id 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  AND cscart_categories.storefront_id IN (0, 1) 
  LEFT JOIN cscart_warehouses_sum_products_amount as war_sum_amount ON war_sum_amount.product_id = products.product_id 
  LEFT JOIN cscart_master_products_storefront_offers_count AS master_products_storefront_offers_count ON master_products_storefront_offers_count.product_id = products.product_id 
  AND master_products_storefront_offers_count.storefront_id = 1 
  LEFT JOIN cscart_master_products_storefront_min_price ON cscart_master_products_storefront_min_price.product_id = prices.product_id 
  AND cscart_master_products_storefront_min_price.storefront_id = 1 
WHERE 
  1 
  AND cscart_categories.category_id IN (
    1192, 
    1193, 
    1194, 
    1195, 
    1196, 
    1197, 
    1198, 
    1199, 
    1200, 
    1201, 
    1202, 
    1203, 
    1204, 
    1205, 
    1206, 
    1207, 
    1208, 
    1209, 
    1210, 
    1211, 
    1212, 
    1213, 
    1214, 
    1215, 
    1216, 
    1217, 
    1218, 
    1219, 
    1220, 
    1221, 
    1222, 
    1223, 
    1224, 
    1225, 
    1226, 
    1227, 
    1228, 
    1229, 
    1230, 
    1231, 
    1232, 
    1233, 
    1234, 
    1235, 
    1236, 
    1237, 
    1238, 
    1239, 
    1240, 
    1241, 
    1242, 
    1243, 
    1244, 
    1245, 
    1246, 
    1247, 
    1248, 
    1249, 
    1250, 
    1251, 
    1252, 
    1253, 
    1254, 
    1255, 
    1256, 
    1257, 
    1258, 
    1259, 
    1260, 
    1261, 
    1262, 
    1263, 
    1264, 
    1265, 
    1266, 
    1267, 
    1268, 
    1269, 
    1270, 
    1271, 
    1272, 
    1273, 
    1274, 
    1275, 
    1276, 
    1277, 
    1278, 
    1279, 
    1280, 
    1281, 
    1282, 
    1283, 
    1284, 
    1285, 
    1286, 
    1287, 
    1288, 
    1289, 
    1290, 
    1291, 
    1292, 
    1293, 
    1294, 
    1295, 
    1296, 
    1297, 
    1298, 
    1299, 
    1309, 
    1310, 
    1311, 
    1312, 
    1313, 
    1314, 
    1315, 
    1316, 
    1317, 
    1318, 
    1319, 
    1320, 
    1321, 
    1322, 
    1323, 
    1324, 
    1325, 
    1326, 
    1327, 
    1328, 
    1334, 
    1388, 
    1389, 
    1390, 
    1391, 
    1392, 
    1393, 
    1394, 
    1395, 
    1396, 
    1397, 
    1398, 
    1399, 
    1400, 
    1401, 
    1403, 
    1404, 
    1405, 
    1406, 
    1407, 
    1408, 
    1409, 
    1410, 
    1411, 
    1412, 
    1413, 
    1414, 
    1415, 
    1416, 
    1417, 
    1418, 
    1419, 
    1420, 
    1421, 
    1422, 
    1423, 
    1424, 
    1425, 
    1426, 
    1427, 
    1428, 
    1429, 
    1430, 
    1431, 
    1432, 
    1433, 
    1434, 
    1435, 
    1436, 
    1437, 
    1438, 
    1439, 
    1440, 
    1441, 
    1442, 
    1443, 
    1444, 
    1445, 
    1446, 
    1447, 
    1448, 
    1449, 
    1450, 
    1451, 
    1452, 
    1453, 
    1454, 
    1455, 
    1456, 
    1457, 
    1458, 
    1459, 
    1460, 
    1461, 
    1462, 
    1463, 
    1464, 
    1465, 
    1466, 
    1467, 
    1468, 
    1469, 
    1470, 
    1471, 
    1472, 
    1473, 
    1474, 
    1475, 
    1476, 
    1477, 
    1479, 
    1480, 
    1481, 
    1482, 
    1483, 
    1484, 
    1485, 
    1486, 
    1487, 
    1488, 
    1489, 
    1490, 
    1491, 
    1492, 
    1493, 
    1494, 
    1495, 
    1496, 
    1497, 
    1498, 
    1501, 
    1502, 
    1503, 
    1504, 
    1505, 
    1506, 
    1507, 
    1508, 
    1509, 
    1510, 
    1511, 
    1512, 
    1513, 
    1514, 
    1515, 
    1516, 
    1517, 
    1518
  ) 
  AND (
    companies.status IN ('A', 'S') 
    OR products.company_id = 0
  ) 
  AND products.company_id IN (137, 138, 146, 0) 
  AND (
    products.usergroup_ids = '' 
    OR FIND_IN_SET(0, products.usergroup_ids) 
    OR FIND_IN_SET(1, products.usergroup_ids)
  ) 
  AND products.status IN ('A') 
  AND prices.usergroup_id IN (0, 0, 1) 
  AND products.master_product_status IN ('A') 
  AND products.master_product_id = 0 
  AND (
    products.company_id > 0 
    OR (
      master_products_storefront_offers_count.count > 0
    )
  ) 
  AND products.product_type != 'D' 
GROUP BY 
  product_id 
ORDER BY 
  instock_sorting DESC, 
  price asc, 
  products.product_id ASC 
LIMIT 
  0, 20

Query time 0.08194

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "81.50"
    },
    "ordering_operation": {
      "using_filesort": true,
      "grouping_operation": {
        "using_temporary_table": true,
        "using_filesort": true,
        "buffer_result": {
          "using_temporary_table": true,
          "nested_loop": [
            {
              "table": {
                "table_name": "war_sum_amount",
                "access_type": "system",
                "possible_keys": [
                  "PRIMARY"
                ],
                "rows_examined_per_scan": 0,
                "rows_produced_per_join": 1,
                "filtered": "0.00",
                "const_row_not_found": true,
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "0.10",
                  "prefix_cost": "0.00",
                  "data_read_per_join": "16"
                },
                "used_columns": [
                  "product_id"
                ]
              }
            },
            {
              "table": {
                "table_name": "master_products_storefront_offers_count",
                "access_type": "system",
                "possible_keys": [
                  "PRIMARY",
                  "idx_storefront_id"
                ],
                "rows_examined_per_scan": 0,
                "rows_produced_per_join": 1,
                "filtered": "0.00",
                "const_row_not_found": true,
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "0.10",
                  "prefix_cost": "0.00",
                  "data_read_per_join": "16"
                },
                "used_columns": [
                  "storefront_id",
                  "product_id",
                  "count"
                ]
              }
            },
            {
              "table": {
                "table_name": "cscart_master_products_storefront_min_price",
                "access_type": "system",
                "possible_keys": [
                  "PRIMARY"
                ],
                "rows_examined_per_scan": 0,
                "rows_produced_per_join": 1,
                "filtered": "0.00",
                "const_row_not_found": true,
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "0.10",
                  "prefix_cost": "0.00",
                  "data_read_per_join": "16"
                },
                "used_columns": [
                  "storefront_id",
                  "product_id",
                  "price"
                ]
              }
            },
            {
              "table": {
                "table_name": "products_categories",
                "access_type": "range",
                "possible_keys": [
                  "PRIMARY",
                  "pt"
                ],
                "key": "PRIMARY",
                "used_key_parts": [
                  "category_id"
                ],
                "key_length": "3",
                "rows_examined_per_scan": 256,
                "rows_produced_per_join": 256,
                "filtered": "100.00",
                "using_index": true,
                "cost_info": {
                  "read_cost": "27.45",
                  "eval_cost": "25.60",
                  "prefix_cost": "53.05",
                  "data_read_per_join": "4K"
                },
                "used_columns": [
                  "product_id",
                  "category_id"
                ],
                "attached_condition": "(`s2cart`.`products_categories`.`category_id` in (1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1334,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518))"
              }
            },
            {
              "table": {
                "table_name": "products",
                "access_type": "eq_ref",
                "possible_keys": [
                  "PRIMARY",
                  "status",
                  "idx_master_product_id"
                ],
                "key": "PRIMARY",
                "used_key_parts": [
                  "product_id"
                ],
                "key_length": "3",
                "ref": [
                  "s2cart.products_categories.product_id"
                ],
                "rows_examined_per_scan": 1,
                "rows_produced_per_join": 12,
                "filtered": "5.00",
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "1.28",
                  "prefix_cost": "78.65",
                  "data_read_per_join": "98K"
                },
                "used_columns": [
                  "product_id",
                  "product_type",
                  "status",
                  "company_id",
                  "amount",
                  "usergroup_ids",
                  "tracking",
                  "age_verification",
                  "age_limit",
                  "parent_product_id",
                  "master_product_id",
                  "master_product_status",
                  "master_product_offers_count"
                ],
                "attached_condition": "((`s2cart`.`products`.`master_product_id` = 0) and (`s2cart`.`products`.`company_id` in (137,138,146,0)) and ((`s2cart`.`products`.`usergroup_ids` = '') or (0 <> find_in_set(0,`s2cart`.`products`.`usergroup_ids`)) or (0 <> find_in_set(1,`s2cart`.`products`.`usergroup_ids`))) and (`s2cart`.`products`.`status` = 'A') and (`s2cart`.`products`.`master_product_status` = 'A') and ((`s2cart`.`products`.`company_id` > 0) or <cache>((NULL > 0))) and (`s2cart`.`products`.`product_type` <> 'D'))"
              }
            },
            {
              "table": {
                "table_name": "companies",
                "access_type": "eq_ref",
                "possible_keys": [
                  "PRIMARY"
                ],
                "key": "PRIMARY",
                "used_key_parts": [
                  "company_id"
                ],
                "key_length": "4",
                "ref": [
                  "s2cart.products.company_id"
                ],
                "rows_examined_per_scan": 1,
                "rows_produced_per_join": 12,
                "filtered": "100.00",
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "1.28",
                  "prefix_cost": "79.93",
                  "data_read_per_join": "118K"
                },
                "used_columns": [
                  "company_id",
                  "status",
                  "company"
                ],
                "attached_condition": "<if>(found_match(companies), ((`s2cart`.`companies`.`status` in ('A','S')) or (`s2cart`.`products`.`company_id` = 0)), true)"
              }
            },
            {
              "table": {
                "table_name": "cscart_categories",
                "access_type": "eq_ref",
                "possible_keys": [
                  "PRIMARY",
                  "c_status",
                  "p_category_id"
                ],
                "key": "PRIMARY",
                "used_key_parts": [
                  "category_id"
                ],
                "key_length": "3",
                "ref": [
                  "s2cart.products_categories.category_id"
                ],
                "rows_examined_per_scan": 1,
                "rows_produced_per_join": 0,
                "filtered": "5.00",
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "0.06",
                  "prefix_cost": "81.21",
                  "data_read_per_join": "2K"
                },
                "used_columns": [
                  "category_id",
                  "usergroup_ids",
                  "status",
                  "age_verification",
                  "age_limit",
                  "parent_age_verification",
                  "parent_age_limit",
                  "storefront_id"
                ],
                "attached_condition": "(((`s2cart`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`s2cart`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`s2cart`.`cscart_categories`.`usergroup_ids`))) and (`s2cart`.`cscart_categories`.`status` in ('A','H')) and (`s2cart`.`cscart_categories`.`storefront_id` in (0,1)))"
              }
            },
            {
              "table": {
                "table_name": "descr1",
                "access_type": "eq_ref",
                "possible_keys": [
                  "PRIMARY",
                  "product_id"
                ],
                "key": "PRIMARY",
                "used_key_parts": [
                  "product_id",
                  "lang_code"
                ],
                "key_length": "9",
                "ref": [
                  "s2cart.products_categories.product_id",
                  "const"
                ],
                "rows_examined_per_scan": 1,
                "rows_produced_per_join": 0,
                "filtered": "100.00",
                "cost_info": {
                  "read_cost": "0.00",
                  "eval_cost": "0.06",
                  "prefix_cost": "81.28",
                  "data_read_per_join": "4K"
                },
                "used_columns": [
                  "product_id",
                  "lang_code",
                  "product"
                ]
              }
            },
            {
              "table": {
                "table_name": "prices",
                "access_type": "ref",
                "possible_keys": [
                  "usergroup",
                  "product_id",
                  "lower_limit",
                  "usergroup_id"
                ],
                "key": "product_id",
                "used_key_parts": [
                  "product_id"
                ],
                "key_length": "3",
                "ref": [
                  "s2cart.products_categories.product_id"
                ],
                "rows_examined_per_scan": 1,
                "rows_produced_per_join": 0,
                "filtered": "100.00",
                "cost_info": {
                  "read_cost": "0.16",
                  "eval_cost": "0.06",
                  "prefix_cost": "81.50",
                  "data_read_per_join": "15"
                },
                "used_columns": [
                  "product_id",
                  "price",
                  "percentage_discount",
                  "lower_limit",
                  "usergroup_id"
                ],
                "attached_condition": "((`s2cart`.`prices`.`lower_limit` = 1) and (`s2cart`.`prices`.`usergroup_id` in (0,0,1)))"
              }
            }
          ],
          "select_list_subqueries": [
            {
              "dependent": true,
              "cacheable": false,
              "query_block": {
                "select_id": 3,
                "message": "no matching row in const table"
              }
            },
            {
              "dependent": true,
              "cacheable": false,
              "query_block": {
                "select_id": 2,
                "cost_info": {
                  "query_cost": "31651.29"
                },
                "table": {
                  "table_name": "cscart_products",
                  "access_type": "ALL",
                  "possible_keys": [
                    "idx_parent_product_id"
                  ],
                  "rows_examined_per_scan": 270845,
                  "rows_produced_per_join": 27084,
                  "filtered": "10.00",
                  "cost_info": {
                    "read_cost": "4566.79",
                    "eval_cost": "2708.45",
                    "prefix_cost": "31651.29",
                    "data_read_per_join": "203M"
                  },
                  "used_columns": [
                    "amount",
                    "parent_product_id"
                  ],
                  "attached_condition": "(`s2cart`.`cscart_products`.`parent_product_id` = `s2cart`.`products`.`product_id`)"
                }
              }
            }
          ]
        }
      }
    }
  }
}