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 (
    833, 832, 841, 840, 839, 838, 837, 853, 
    852, 858, 857, 856, 855, 854, 863, 862, 
    861, 860, 859, 867, 866, 865, 864, 872, 
    871, 870, 869, 868, 874, 873, 878, 877, 
    876, 875
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00127

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "110.57"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "4.85"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 126,
            "rows_produced_per_join": 5,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "29.72",
              "eval_cost": "1.01",
              "prefix_cost": "30.73",
              "data_read_per_join": "20K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscart`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscart`.`cscart_categories`.`usergroup_ids` = '') or find_in_set(0,`cscart`.`cscart_categories`.`usergroup_ids`) or find_in_set(1,`cscart`.`cscart_categories`.`usergroup_ids`)) and (`cscart`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "cscart.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 12,
            "rows_produced_per_join": 4,
            "filtered": "8.01",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (833,832,841,840,839,838,837,853,852,858,857,856,855,854,863,862,861,860,859,867,866,865,864,872,871,870,869,868,874,873,878,877,876,875))",
            "cost_info": {
              "read_cost": "62.90",
              "eval_cost": "0.97",
              "prefix_cost": "105.72",
              "data_read_per_join": "77"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
832 301,366,374M
833 301,366,374M
837 301,302,368M
838 301,302,368M
839 368M,301,302
840 368M,301,302
841 301,302,368M
852 301,302,369M
853 301,302,369M
854 301,302,369M
855 369M,301,302
856 369M,301,302
857 301,302,369M
858 301,302,369M
859 301,302,369M
860 301,302,369M
861 301,302,369M
862 369M,301,302
863 369M,301,302
864 301,302,369M
865 301,302,369M
866 301,302,369M
867 301,302,369M
868 369M,301,302
869 369M,301,302
870 301,302,369M
871 301,302,369M
872 301,302,369M
873 370M,301,302
874 370M,301,302
875 301,302,369M
876 301,302,369M
877 301,302,369M
878 301,302,369M