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 (
    39503, 40547, 40112, 40580, 40714, 40836, 
    40232, 40208, 40469, 40616, 40738, 
    40088, 40374, 40787, 40679, 40516, 
    40350, 40812, 40762, 40160, 40326, 
    40422, 40136, 40302, 39585, 40901, 
    40896, 40861, 40865, 40893, 40874, 
    40862, 40873, 40877, 40884, 40887, 
    40891, 40892, 40890, 40883, 40889, 
    40869, 40864, 40880, 40870, 40871, 
    40872, 40875, 40876, 40867, 40879, 
    40886, 40866, 40885, 40888
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00186

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "94.56"
    },
    "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": 101,
            "rows_produced_per_join": 101,
            "filtered": "100.00",
            "index_condition": "(`cscartdb`.`cscart_products_categories`.`product_id` in (39503,40547,40112,40580,40714,40836,40232,40208,40469,40616,40738,40088,40374,40787,40679,40516,40350,40812,40762,40160,40326,40422,40136,40302,39585,40901,40896,40861,40865,40893,40874,40862,40873,40877,40884,40887,40891,40892,40890,40883,40889,40869,40864,40880,40870,40871,40872,40875,40876,40867,40879,40886,40866,40885,40888))",
            "cost_info": {
              "read_cost": "49.11",
              "eval_cost": "10.10",
              "prefix_cost": "59.21",
              "data_read_per_join": "1K"
            },
            "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": [
              "cscartdb.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 5,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "25.25",
              "eval_cost": "0.51",
              "prefix_cost": "94.56",
              "data_read_per_join": "16K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscartdb`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscartdb`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`cscartdb`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`cscartdb`.`cscart_categories`.`usergroup_ids`))) and (`cscartdb`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
39503 1189,61M
39585 1189,61M
40088 1189,61M
40112 1189,61M
40136 1189,61M
40160 1189,61M
40208 1189,61M
40232 1189,61M
40302 1189,61M
40326 1189,61M
40350 1189,61M
40374 1189,61M
40422 1189,61M
40469 1189,61M
40516 1189,61M
40547 1189,61M
40580 1189,61M
40616 1189,61M
40679 1189,61M
40714 1189,61M
40738 1189,61M
40762 1189,61M
40787 1189,61M
40812 1189,61M
40836 1189,61M
40861 1191,53M
40862 1191,53M
40864 1191,53M
40865 1191,53M
40866 1191,53M
40867 1191,53M
40869 1191,53M
40870 1191,53M
40871 1191,53M
40872 1191,53M
40873 1191,53M
40874 1191,53M
40875 1191,53M
40876 1191,53M
40877 1191,53M
40879 1191,53M
40880 1191,53M
40883 1191,53M
40884 1191,53M
40885 1191,53M
40886 1191,53M
40887 1191,53M
40888 1191,53M
40889 1191,53M
40890 1191,53M
40891 1191,53M
40892 1191,53M
40893 1193,347M
40896 1193,347M
40901 1193,347M