SELECT 
  SQL_CALC_FOUND_ROWS products.product_id, 
  descr1.product as product, 
  companies.company as company_name, 
  companies.ag_hide_city as company_city_hide, 
  companies.city as company_city, 
  companies.state as company_state 
FROM 
  products as products 
  LEFT JOIN product_descriptions as descr1 ON descr1.product_id = products.product_id 
  AND descr1.lang_code = 'en' 
  LEFT JOIN product_prices as prices ON prices.product_id = products.product_id 
  AND prices.lower_limit = 1 
  LEFT JOIN companies AS companies ON companies.company_id = products.company_id 
  INNER JOIN products_categories as products_categories ON products_categories.product_id = products.product_id 
  INNER JOIN categories ON categories.category_id = products_categories.category_id 
  AND (
    categories.usergroup_ids = '' 
    OR FIND_IN_SET(0, categories.usergroup_ids) 
    OR FIND_IN_SET(1, categories.usergroup_ids)
  ) 
  AND categories.status IN ('A', 'H') 
  AND categories.storefront_id IN (0, 1) 
  LEFT JOIN product_options_inventory as inventory ON inventory.product_id = products.product_id 
  LEFT JOIN product_popularity as popularity ON popularity.product_id = products.product_id 
WHERE 
  1 
  AND categories.category_id IN (18773, 18778, 18779, 18780) 
  AND companies.status IN ('A') 
  AND products.company_id = 7353 
  AND (
    products.amount > 0 
    OR products.tracking = 'D'
  ) 
  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.company_id = 7353 
GROUP BY 
  products.product_id 
ORDER BY 
  popularity.total desc, 
  products.product_id ASC 
LIMIT 
  0, 24

Query time 0.00146

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "7.28"
    },
    "ordering_operation": {
      "using_filesort": true,
      "grouping_operation": {
        "using_temporary_table": true,
        "using_filesort": false,
        "nested_loop": [
          {
            "table": {
              "table_name": "companies",
              "access_type": "const",
              "possible_keys": [
                "PRIMARY",
                "idx_status"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "company_id"
              ],
              "key_length": "4",
              "ref": [
                "const"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 1,
              "filtered": "100.00",
              "cost_info": {
                "read_cost": "0.00",
                "eval_cost": "0.10",
                "prefix_cost": "0.00",
                "data_read_per_join": "14K"
              },
              "used_columns": [
                "company_id",
                "status",
                "company",
                "city",
                "state",
                "ag_hide_city"
              ]
            }
          },
          {
            "table": {
              "table_name": "categories",
              "access_type": "range",
              "possible_keys": [
                "PRIMARY",
                "c_status",
                "p_category_id"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "category_id"
              ],
              "key_length": "3",
              "rows_examined_per_scan": 4,
              "rows_produced_per_join": 0,
              "filtered": "4.00",
              "cost_info": {
                "read_cost": "1.80",
                "eval_cost": "0.02",
                "prefix_cost": "1.81",
                "data_read_per_join": "428"
              },
              "used_columns": [
                "category_id",
                "usergroup_ids",
                "status",
                "storefront_id"
              ],
              "attached_condition": "((`goimagine`.`categories`.`category_id` in (18773,18778,18779,18780)) and ((`goimagine`.`categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`goimagine`.`categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`goimagine`.`categories`.`usergroup_ids`))) and (`goimagine`.`categories`.`status` in ('A','H')) and (`goimagine`.`categories`.`storefront_id` in (0,1)))"
            }
          },
          {
            "table": {
              "table_name": "products_categories",
              "access_type": "ref",
              "possible_keys": [
                "PRIMARY",
                "pt"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "category_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.categories.category_id"
              ],
              "rows_examined_per_scan": 68,
              "rows_produced_per_join": 10,
              "filtered": "100.00",
              "using_index": true,
              "cost_info": {
                "read_cost": "0.04",
                "eval_cost": "1.09",
                "prefix_cost": "2.95",
                "data_read_per_join": "174"
              },
              "used_columns": [
                "product_id",
                "category_id"
              ]
            }
          },
          {
            "table": {
              "table_name": "products",
              "access_type": "eq_ref",
              "possible_keys": [
                "PRIMARY",
                "age_verification",
                "status",
                "idx_company_id",
                "idx_usergroup_ids",
                "idx_amount",
                "index_products_on_deleted_at"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.products_categories.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "5.00",
              "cost_info": {
                "read_cost": "2.72",
                "eval_cost": "0.05",
                "prefix_cost": "6.76",
                "data_read_per_join": "2K"
              },
              "used_columns": [
                "product_id",
                "status",
                "company_id",
                "amount",
                "usergroup_ids",
                "tracking"
              ],
              "attached_condition": "((`goimagine`.`products`.`company_id` = 7353) and ((`goimagine`.`products`.`amount` > 0) or (`goimagine`.`products`.`tracking` = 'D')) and ((`goimagine`.`products`.`usergroup_ids` = '') or (0 <> find_in_set(0,`goimagine`.`products`.`usergroup_ids`)) or (0 <> find_in_set(1,`goimagine`.`products`.`usergroup_ids`))) and (`goimagine`.`products`.`status` = 'A'))"
            }
          },
          {
            "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": [
                "goimagine.products_categories.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "25.00",
              "cost_info": {
                "read_cost": "0.18",
                "eval_cost": "0.01",
                "prefix_cost": "7.00",
                "data_read_per_join": "3"
              },
              "used_columns": [
                "id",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "attached_condition": "((`goimagine`.`prices`.`lower_limit` = 1) and (`goimagine`.`prices`.`usergroup_id` in (0,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": "11",
              "ref": [
                "goimagine.products_categories.product_id",
                "const"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "cost_info": {
                "read_cost": "0.09",
                "eval_cost": "0.01",
                "prefix_cost": "7.10",
                "data_read_per_join": "736"
              },
              "used_columns": [
                "product_id",
                "lang_code",
                "product"
              ]
            }
          },
          {
            "table": {
              "table_name": "inventory",
              "access_type": "ref",
              "possible_keys": [
                "pc"
              ],
              "key": "pc",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.products_categories.product_id"
              ],
              "rows_examined_per_scan": 3,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "using_index": true,
              "cost_info": {
                "read_cost": "0.04",
                "eval_cost": "0.05",
                "prefix_cost": "7.20",
                "data_read_per_join": "468"
              },
              "used_columns": [
                "product_id",
                "combination_hash"
              ]
            }
          },
          {
            "table": {
              "table_name": "popularity",
              "access_type": "eq_ref",
              "possible_keys": [
                "PRIMARY",
                "total"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.products_categories.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "cost_info": {
                "read_cost": "0.04",
                "eval_cost": "0.05",
                "prefix_cost": "7.28",
                "data_read_per_join": "15"
              },
              "used_columns": [
                "product_id",
                "total"
              ]
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name company_city_hide company_city company_state
252679 Horse Key Chain - riding,races,Equestrian,neigh, Vinyl Key Chain, Key Ring, Accessory, ID Tag, Puppy Love, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252616 Llama, Pink Llama key chain, Funky Llama, Fun key chains, Vinyl Key Chain, O-Ring, Key Ring, ID Tag Bag Tags Unlimited N Benton AR
252688 Dog Tag, Dog Key Chain, Bone Key Chain, Dog Lovers, Puppy Gear, Vinyl Key Chain, Key Ring, Accessory, ID Tag, Puppy Love, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252677 Horse keychain - Vinyl Key Chain, Key Ring, Accessory, ID Tag, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252678 Horseshoe Key Chain- shoe,riding,races,Equestrian,neigh, Vinyl Key Chain, Key Ring, Accessory, ID Tag, Puppy Love, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252686 Cat Tag, Cat Key Chain, Meow Chain, Cat Lovers, Kitten Gear, Vinyl Key Chain, Kitty Ring, Accessory, ID Tag, Kitty Love, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252687 Dog Tag, Dog Key Chain, Bow Wow Chain, Dog Lovers, Puppy Gear, Vinyl Key Chain, Key Ring, Accessory, ID Tag, Puppy Love, Crazy About Vinyl Bag Tags Unlimited N Benton AR
252619 Pink Cat, Meow Key chain set, Women's Rights, Cat Lady, Vinyl Key Chain, O-Ring, Key Ring, ID Tag Bag Tags Unlimited N Benton AR