SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  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') 
WHERE 
  cscart_products_categories.product_id IN (
    82, 51132, 51131, 51134, 51133, 51130, 
    41, 51146, 51145, 38, 51148, 51147, 
    51150, 51149, 37, 51169, 51168, 51167, 
    51166, 90, 51171, 51170, 51209, 51208, 
    51207, 51206, 124, 56, 51295, 117, 116, 
    115, 81, 11, 51326, 135, 51357, 51360, 
    51359, 51358, 51361, 30, 51362, 51363, 
    51364, 51365, 140, 51385, 51386, 51387, 
    51388, 51389
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00195

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "153.01"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 175,
            "rows_produced_per_join": 175,
            "filtered": "100.00",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (82,51132,51131,51134,51133,51130,41,51146,51145,38,51148,51147,51150,51149,37,51169,51168,51167,51166,90,51171,51170,51209,51208,51207,51206,124,56,51295,117,116,115,81,11,51326,135,51357,51360,51359,51358,51361,30,51362,51363,51364,51365,140,51385,51386,51387,51388,51389))",
            "cost_info": {
              "read_cost": "74.26",
              "eval_cost": "17.50",
              "prefix_cost": "91.76",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "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": [
              "test_uchur_k.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "43.75",
              "eval_cost": "0.88",
              "prefix_cost": "153.01",
              "data_read_per_join": "46K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test_uchur_k`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test_uchur_k`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test_uchur_k`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test_uchur_k`.`cscart_categories`.`usergroup_ids`))) and (`test_uchur_k`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
11 42,8,394,40M
30 44,18,391,40M
37 42,10,40M
38 10,42,40M
41 10,43,40M
56 42,8,394,40M
81 43,8,394,40M
82 44,8,394,40M
90 43,9,40M
115 42,8,394,40M
116 42,8,394,40M
117 42,8,394,40M
124 42,7,40M
135 45,394,36M
140 25,42,40M
51130 43,10,40M
51131 43,10,40M
51132 43,10,40M
51133 43,10,40M
51134 43,10,40M
51145 42,10,40M
51146 42,10,40M
51147 42,10,40M
51148 42,10,40M
51149 10,42,40M
51150 10,42,40M
51166 9,43,40M
51167 9,43,40M
51168 9,43,40M
51169 43,9,40M
51170 9,43,40M
51171 9,43,40M
51206 7,42,40M
51207 42,7,40M
51208 7,42,40M
51209 7,42,40M
51295 394,42,8,40M
51326 45,394,36M
51357 391,18,42,40M
51358 391,42,18,40M
51359 391,18,42,40M
51360 391,18,42,40M
51361 391,18,44,40M
51362 391,18,44,40M
51363 391,18,44,40M
51364 391,18,44,40M
51365 18,44,391,40M
51385 42,25,40M
51386 42,25,40M
51387 42,25,40M
51388 42,25,40M
51389 42,25,40M