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, 
  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, 
  descr1.full_description as full_description, 
  descr1.short_description as short_description 
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_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 
WHERE 
  1 
  AND cscart_categories.category_id IN (227) 
  AND (
    companies.status IN ('A') 
    OR products.company_id = 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 
  product asc, 
  products.product_id ASC 
LIMIT 
  0, 16

Query time 0.00232

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.03924332,
    "filesort": {
      "sort_key": "descr1.product, products.product_id",
      "temporary_table": {
        "filesort": {
          "sort_key": "case when products.parent_product_id <> 0 then products.parent_product_id else products.product_id end",
          "temporary_table": {
            "nested_loop": [
              {
                "table": {
                  "table_name": "cscart_categories",
                  "access_type": "const",
                  "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
                  "key": "PRIMARY",
                  "key_length": "3",
                  "used_key_parts": ["category_id"],
                  "ref": ["const"],
                  "rows": 1,
                  "filtered": 100
                }
              },
              {
                "table": {
                  "table_name": "products_categories",
                  "access_type": "ref",
                  "possible_keys": ["PRIMARY", "pt"],
                  "key": "PRIMARY",
                  "key_length": "3",
                  "used_key_parts": ["category_id"],
                  "ref": ["const"],
                  "loops": 1,
                  "rows": 5,
                  "cost": 0.00260527,
                  "filtered": 100
                }
              },
              {
                "table": {
                  "table_name": "products",
                  "access_type": "eq_ref",
                  "possible_keys": [
                    "PRIMARY",
                    "status",
                    "idx_master_product_id",
                    "wdbi_master_product_status_master_product_id_produc_46b93429beec",
                    "wdbi_master_product_id_master_product_status_produc_611007cab252",
                    "wdbi_master_product_id_master_product_status_produc_37d8c9a2112a",
                    "wdbi_master_product_id_master_product_status_status_1d4dcd83320a",
                    "wdbi_master_product_id_master_product_status_produc_909a0cf2d55b",
                    "wdbi_master_product_id_master_product_status_status_ff7ba2ae2fb0"
                  ],
                  "key": "PRIMARY",
                  "key_length": "3",
                  "used_key_parts": ["product_id"],
                  "ref": [
                    "u985510652_ecartify_abhi.products_categories.product_id"
                  ],
                  "loops": 5,
                  "rows": 1,
                  "cost": 0.0085682,
                  "filtered": 100,
                  "attached_condition": "products.master_product_id = 0 and (products.usergroup_ids = '' or find_in_set(0,products.usergroup_ids) or find_in_set(1,products.usergroup_ids)) and products.`status` = 'A' and products.master_product_status = 'A' and products.product_type <> 'D'"
                }
              },
              {
                "table": {
                  "table_name": "companies",
                  "access_type": "eq_ref",
                  "possible_keys": ["PRIMARY"],
                  "key": "PRIMARY",
                  "key_length": "4",
                  "used_key_parts": ["company_id"],
                  "ref": ["u985510652_ecartify_abhi.products.company_id"],
                  "loops": 5,
                  "rows": 1,
                  "cost": 0.0052914,
                  "filtered": 100,
                  "attached_condition": "trigcond(companies.`status` = 'A' or products.company_id = 0)"
                }
              },
              {
                "table": {
                  "table_name": "master_products_storefront_offers_count",
                  "access_type": "eq_ref",
                  "possible_keys": ["PRIMARY", "idx_storefront_id"],
                  "key": "PRIMARY",
                  "key_length": "8",
                  "used_key_parts": ["product_id", "storefront_id"],
                  "ref": [
                    "u985510652_ecartify_abhi.products_categories.product_id",
                    "const"
                  ],
                  "loops": 5,
                  "rows": 1,
                  "cost": 0.0052914,
                  "filtered": 100,
                  "attached_condition": "trigcond(products.company_id > 0 or master_products_storefront_offers_count.count > 0) and trigcond(master_products_storefront_offers_count.product_id = products_categories.product_id)"
                }
              },
              {
                "table": {
                  "table_name": "descr1",
                  "access_type": "eq_ref",
                  "possible_keys": ["PRIMARY", "product_id"],
                  "key": "PRIMARY",
                  "key_length": "9",
                  "used_key_parts": ["product_id", "lang_code"],
                  "ref": [
                    "u985510652_ecartify_abhi.products_categories.product_id",
                    "const"
                  ],
                  "loops": 5,
                  "rows": 1,
                  "cost": 0.0085682,
                  "filtered": 100,
                  "attached_condition": "trigcond(descr1.lang_code = 'en')"
                }
              },
              {
                "table": {
                  "table_name": "prices",
                  "access_type": "ref",
                  "possible_keys": [
                    "usergroup",
                    "product_id",
                    "lower_limit",
                    "usergroup_id",
                    "wdbi_product_id_lower_limit_usergroup_id_price_eff1727beeef",
                    "wdbi_usergroup_id_lower_limit_product_id_92b7e8f6a250",
                    "wdbi_product_id_lower_limit_usergroup_id_price_perc_3b2301d551d0",
                    "wdbi_lower_limit_usergroup_id_product_id_b93629431718"
                  ],
                  "key": "usergroup",
                  "key_length": "3",
                  "used_key_parts": ["product_id"],
                  "ref": [
                    "u985510652_ecartify_abhi.products_categories.product_id"
                  ],
                  "loops": 5,
                  "rows": 1,
                  "cost": 0.00891885,
                  "filtered": 100,
                  "attached_condition": "prices.lower_limit = 1 and prices.usergroup_id in (0,0,1)"
                }
              }
            ]
          }
        }
      }
    }
  }
}

Result

product_id product company_name product_ids product_types parent_product_ids product_type parent_product_id master_product_offers_count master_product_id company_id full_description short_description
107 Montblanc Classic Collection Money Clip Parrot Products,Parrot Products 107 P 0 P 0 0 0 1 <p>Platinum-plated money clip with black onyx inlay</p>
109 Montblanc Contemporary Collection Key Ring with Montblanc emblem Parrot Products,Parrot Products 109 P 0 P 0 0 0 1 <p>Stainless steel key ring with brown calf leather</p>
91 Montblanc Nicolas Rieussec Chronograph Automatic Parrot Products,Parrot Products 91 P 0 P 0 0 0 1 <p>43 mm watch with stainless steel case, Montblanc Calibre MB R200, monopusher chronograph with automatic winding, anthracite-coloured dial with applique hour circle, date display, second time zone with day/night display, chronograph counters with rotating discs.</p>
92 Montblanc TimeWalker Automatic Parrot Products,Parrot Products 92 P 0 P 0 0 0 1 <p>42 mm stainless steel watch with black dial, red-gold plated hands and numerals, automatic movement, date display, black alligator-skin strap</p>
102 PR 100 Women's White Quartz Watch Parrot Products,Parrot Products 102 P 0 P 0 0 0 1 <p>Unrivaled best seller that is true to its name, the PR 100 is certainly precise and hugely popular.<br /> <br /> A combination of tradition with up-to-the-minute looks using quality materials on the outside and Swiss reliability on the inside. This ironic watch family offers lady and gent sizes to prevent any rivalry, although as far as style is concerned, the race is on! The Swiss made quartz ETA movement has battery end-of-life indicator, a scratch resistant sapphire crystal and date indicator. Features include a stainless steel bracelet, a magnificent white dial, and water resistance up to 100 meters.</p>