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 
WHERE 
  1 
  AND companies.status IN ('A') 
  AND products.company_id = 237 
  AND (
    products.amount > 0 
    OR products.tracking = 'D'
  ) 
  AND products.product_id IN (
    3800, 3783, 3925, 3842, 4182, 3991, 3821, 
    3805, 3806, 3820, 59997, 3839, 3782
  ) 
  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 = 237 
GROUP BY 
  products.product_id 
ORDER BY 
  product asc, 
  products.product_id ASC 
LIMIT 
  0, 100

Query time 0.00412

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "5.90"
    },
    "ordering_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "grouping_operation": {
        "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": "products",
              "access_type": "range",
              "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",
              "rows_examined_per_scan": 13,
              "rows_produced_per_join": 0,
              "filtered": "0.38",
              "cost_info": {
                "read_cost": "5.87",
                "eval_cost": "0.01",
                "prefix_cost": "5.87",
                "data_read_per_join": "216"
              },
              "used_columns": [
                "product_id",
                "status",
                "company_id",
                "amount",
                "usergroup_ids",
                "tracking"
              ],
              "attached_condition": "((`goimagine`.`products`.`company_id` = 237) and ((`goimagine`.`products`.`amount` > 0) or (`goimagine`.`products`.`tracking` = 'D')) and (`goimagine`.`products`.`product_id` in (3800,3783,3925,3842,4182,3991,3821,3805,3806,3820,59997,3839,3782)) 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.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "15.00",
              "cost_info": {
                "read_cost": "0.01",
                "eval_cost": "0.00",
                "prefix_cost": "5.89",
                "data_read_per_join": "0"
              },
              "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": "products_categories",
              "access_type": "ref",
              "possible_keys": [
                "PRIMARY",
                "pt"
              ],
              "key": "pt",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.products.product_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "using_index": true,
              "cost_info": {
                "read_cost": "0.00",
                "eval_cost": "0.00",
                "prefix_cost": "5.90",
                "data_read_per_join": "0"
              },
              "used_columns": [
                "product_id",
                "category_id"
              ]
            }
          },
          {
            "table": {
              "table_name": "categories",
              "access_type": "eq_ref",
              "possible_keys": [
                "PRIMARY",
                "c_status",
                "p_category_id"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "category_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.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.00",
                "prefix_cost": "5.90",
                "data_read_per_join": "1"
              },
              "used_columns": [
                "category_id",
                "usergroup_ids",
                "status",
                "storefront_id"
              ],
              "attached_condition": "(((`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": "inventory",
              "access_type": "ref",
              "possible_keys": [
                "pc"
              ],
              "key": "pc",
              "used_key_parts": [
                "product_id"
              ],
              "key_length": "3",
              "ref": [
                "goimagine.products.product_id"
              ],
              "rows_examined_per_scan": 3,
              "rows_produced_per_join": 0,
              "filtered": "100.00",
              "using_index": true,
              "cost_info": {
                "read_cost": "0.00",
                "eval_cost": "0.00",
                "prefix_cost": "5.90",
                "data_read_per_join": "2"
              },
              "used_columns": [
                "product_id",
                "combination_hash"
              ]
            }
          },
          {
            "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.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.00",
                "prefix_cost": "5.90",
                "data_read_per_join": "13"
              },
              "used_columns": [
                "product_id",
                "lang_code",
                "product"
              ]
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name company_city_hide company_city company_state
3839 Adult Bib, 70 Years, 60, 50, 40 Birthday Party, Boss, Grandpa, Fun Custom Personalize Grandparent Gag Gift Exchange, Ships TODAY, AGFT 1439 A Gift To Treasure N Clinton MO
4182 Big Girl Panties, Granny Panties, You Got This, Custom Personalized, Birthday, Christmas Gift, With Any Name, Extra Large Panties, AGFT 575 A Gift To Treasure N Clinton MO
3991 Family Tree Quilt, Custom 50 Cotton Anniversary Gift, For Grandparent, Wife, Parent, Personalize Throw With Family Member Names, AGFT 1117 A Gift To Treasure N Clinton MO
3805 Funny Adult Bib, I Am Big Mess, Custom Gag Prank Gift, Messy Eater, Boss, Husband, Partner, Dad, Friend, Ships TODAY, AGFT 224 A Gift To Treasure N Clinton MO
59997 Funny Saying Apron For New Cook, Bad Cook, You Get What You Get, Personalize With Name, For Grandma, Mom, Wife, Nana, Ships TODAY, AGFT 530 A Gift To Treasure N Clinton MO
3782 Grandma Apron, Helping Hands, Hand prints, Custom Grandparent Gift, Personalized 7 Grandkids Name, Mimi, Ma, Oma, Ships Quickly, AGFT 286 A Gift To Treasure N Clinton MO
3783 Great Great Grandma Sweatshirt, Is Very Special, Nana, Custom Birthday Gift, With 3 Grandkids Name, Grandparent Gift, Ships TODAY, AGFT 313 A Gift To Treasure N Clinton MO
3800 Grill Sergeant Apron, Army, Navy, Marine, Air Force Drill Instructor, Funny Gift For Active Military Retiree, Custom With Name, AGFT 316 A Gift To Treasure N Clinton MO
3806 Little Girls Apron, Rainbows and Hearts, AGFT 1310 A Gift To Treasure N Clinton MO
3821 MeMa Sweatshirt, Custom Personalized Grandparent Birthday Gift, Oma, Auntie, Nina, Mimsy, Mammaw, Nonnie, Grammy, Gran Ships TODAY, AGFT 766 A Gift To Treasure N Clinton MO
3842 Nonno Golf Towel, Tees, Custom Golfing Gift, Personalized With Name, Golfer Buddy, Pappaw, Granddad, Poppy, Nannie, Ships TODAY, AGFT 738 A Gift To Treasure N Clinton MO
3925 Will Cook For Shoes Apron, High Heel Stilettos, Funny Custom Birthday Gift, Girlfriend, Sister, Aunt, Wife, Friend, Ships TODAY, AGFT 273 A Gift To Treasure N Clinton MO