SELECT 
  SQL_CALC_FOUND_ROWS products.product_id, 
  descr1.product as product, 
  companies.company as company_name, 
  products.product_type, 
  products.parent_product_id, 
  descr1.full_description as full_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) 
WHERE 
  1 
  AND cscart_categories.category_id IN (224) 
  AND companies.status IN ('A') 
  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.parent_product_id = 0 
  AND products.company_id IN('1', '2', '3', '4', '5', '6') 
  AND products.product_type != 'D' 
GROUP BY 
  products.product_id 
ORDER BY 
  product asc, 
  products.product_id ASC 
LIMIT 
  0, 48

Query time 0.00152

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "24.83"
    },
    "ordering_operation": {
      "using_filesort": true,
      "grouping_operation": {
        "using_temporary_table": true,
        "using_filesort": false,
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_categories",
              "access_type": "const",
              "possible_keys": [
                "PRIMARY",
                "c_status",
                "p_category_id"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "category_id"
              ],
              "key_length": "3",
              "ref": [
                "const"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 1,
              "filtered": "100.00",
              "cost_info": {
                "read_cost": "0.00",
                "eval_cost": "0.20",
                "prefix_cost": "0.00",
                "data_read_per_join": "2K"
              },
              "used_columns": [
                "category_id",
                "storefront_id",
                "usergroup_ids",
                "status"
              ]
            }
          },
          {
            "table": {
              "table_name": "companies",
              "access_type": "ALL",
              "possible_keys": [
                "PRIMARY"
              ],
              "rows_examined_per_scan": 6,
              "rows_produced_per_join": 1,
              "filtered": "16.67",
              "cost_info": {
                "read_cost": "3.27",
                "eval_cost": "0.20",
                "prefix_cost": "3.47",
                "data_read_per_join": "7K"
              },
              "used_columns": [
                "company_id",
                "status",
                "company"
              ],
              "attached_condition": "((`atulecarter_atul_demo1`.`companies`.`status` = 'A') and (`atulecarter_atul_demo1`.`companies`.`company_id` in ('1','2','3','4','5','6')))"
            }
          },
          {
            "table": {
              "table_name": "products_categories",
              "access_type": "ref",
              "possible_keys": [
                "PRIMARY",
                "pt"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "category_id"
              ],
              "key_length": "3",
              "ref": [
                "const"
              ],
              "rows_examined_per_scan": 13,
              "rows_produced_per_join": 13,
              "filtered": "100.00",
              "using_index": true,
              "cost_info": {
                "read_cost": "1.30",
                "eval_cost": "2.60",
                "prefix_cost": "7.37",
                "data_read_per_join": "208"
              },
              "used_columns": [
                "product_id",
                "category_id"
              ]
            }
          },
          {
            "table": {
              "table_name": "products",
              "access_type": "eq_ref",
              "possible_keys": [
                "PRIMARY",
                "status",
                "idx_parent_product_id"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "atulecarter_atul_demo1.products_categories.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "5.00",
              "cost_info": {
                "read_cost": "13.00",
                "eval_cost": "0.13",
                "prefix_cost": "22.97",
                "data_read_per_join": "3K"
              },
              "used_columns": [
                "product_id",
                "product_type",
                "status",
                "company_id",
                "usergroup_ids",
                "parent_product_id"
              ],
              "attached_condition": "((`atulecarter_atul_demo1`.`products`.`company_id` = `atulecarter_atul_demo1`.`companies`.`company_id`) and (`atulecarter_atul_demo1`.`products`.`parent_product_id` = 0) and ((`atulecarter_atul_demo1`.`products`.`usergroup_ids` = '') or find_in_set(0,`atulecarter_atul_demo1`.`products`.`usergroup_ids`) or find_in_set(1,`atulecarter_atul_demo1`.`products`.`usergroup_ids`)) and (`atulecarter_atul_demo1`.`products`.`status` = 'A') and (`atulecarter_atul_demo1`.`products`.`product_type` <> 'D'))"
            }
          },
          {
            "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": [
                "atulecarter_atul_demo1.products_categories.product_id",
                "const"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "cost_info": {
                "read_cost": "0.65",
                "eval_cost": "0.13",
                "prefix_cost": "23.75",
                "data_read_per_join": "2K"
              },
              "used_columns": [
                "product_id",
                "lang_code",
                "product",
                "full_description"
              ]
            }
          },
          {
            "table": {
              "table_name": "prices",
              "access_type": "ref",
              "possible_keys": [
                "usergroup",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "key": "usergroup",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "atulecarter_atul_demo1.products_categories.product_id"
              ],
              "rows_examined_per_scan": 3,
              "rows_produced_per_join": 1,
              "filtered": "97.36",
              "using_index": true,
              "cost_info": {
                "read_cost": "0.69",
                "eval_cost": "0.38",
                "prefix_cost": "24.83",
                "data_read_per_join": "45"
              },
              "used_columns": [
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "attached_condition": "((`atulecarter_atul_demo1`.`prices`.`lower_limit` = 1) and (`atulecarter_atul_demo1`.`prices`.`usergroup_id` in (0,0,1)))"
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name product_type parent_product_id full_description
12 100g Pants CS-Cart P 0 <p> When coach calls you off the bench, you need warm-up pants that come off in three seconds or less. That’s why these men's adidas 100g basketball pants have tear-away snaps down the sides, so you're ready for action as fast as a superhero. </p>
325 100g Pants CS-Cart P 0 <p> When coach calls you off the bench, you need warm-up pants that come off in three seconds or less. That’s why these men's adidas 100g basketball pants have tear-away snaps down the sides, so you're ready for action as fast as a superhero. </p>
11 Collegiate 72 Tee CS-Cart P 0 <p>It's not how old you are, it's how stylish, and this men's adidas Originals Collegiate 72 Tee shirt feels just as fresh as it was the day the Trefoil was born in 1972. That's why this t-shirt features a collegiate "72" on the front.</p>
15 Nike Chambray Super Runner Men's Jacket ACME Corp P 0 <div class="text description black-white"> <div class="product-description-component"> <p><strong>The Nike Chambray Super Runner Jacket: A durable, updated classic </strong></p> <p><br></p> <p>The timeless Windrunner design gets a premium upgrade in the Nike Chambray Super Runner Men's Jacket. Created with tough, water-resistant fabric and a mesh lining, this jacket combines breathability and protection from the elements.</p> <p><br></p> <p><strong>Benefits</strong></p> <li>Hood with drawcord for an adjustable fit</li> <li>Overlay at yoke and raglan sleeves for style and enhanced protection</li> <li>Rib cuffs and hem for a fit that stays in place</li> <li>Mesh lining for enhanced ventilation</li> <li>Durable, wind-resistant fabric to protect against the elements</li> <p><br></p> <p><strong>Additional Details</strong></p> <li>Side zip pockets for secure storage</li> <li>Fabric: Body: 100% cotton. Lining and overlay: 100% polyester.</li> <li>Machine wash</li> <li>Imported</li> </div> </div>
280 T-shirt, Color: Black CS-Cart P 0
282 T-shirt, Color: Blue CS-Cart P 0
278 T-shirt, Color: White CS-Cart P 0
287 Trefoil Hoodie CS-Cart P 0 <p>The adidas Originals Trefoil Hoodie has been a streetwear essential for decades, with its characteristic big hood, kangaroo pocket and large Trefoil. Now it's your turn to join the Trefoil men's hoodie crew and carry the legend forward.</p>