SELECT 
  cscart_june_setupproducts_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_june_setupproducts_categories.link_type = "M", 
      CONCAT(
        cscart_june_setupproducts_categories.category_id, 
        "M"
      ), 
      cscart_june_setupproducts_categories.category_id
    )
  ) AS category_ids 
FROM 
  cscart_june_setupproducts_categories 
  INNER JOIN cscart_june_setupcategories ON cscart_june_setupcategories.category_id = cscart_june_setupproducts_categories.category_id 
  AND cscart_june_setupcategories.storefront_id IN (0, 1) 
  AND (
    cscart_june_setupcategories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_june_setupcategories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_june_setupcategories.usergroup_ids
    )
  ) 
  AND cscart_june_setupcategories.status IN ('A', 'H') 
WHERE 
  cscart_june_setupproducts_categories.product_id IN (
    235, 70, 122, 115, 156, 90, 175, 196, 43, 
    104, 76, 129, 127, 121, 103, 95
  ) 
GROUP BY 
  cscart_june_setupproducts_categories.product_id

Query time 0.00084

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "30.97"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "0.43"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_june_setupcategories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 84,
            "rows_produced_per_join": 3,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "19.53",
              "eval_cost": "0.67",
              "prefix_cost": "20.20",
              "data_read_per_join": "8K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`vishalecarter_june_setup`.`cscart_june_setupcategories`.`storefront_id` in (0,1)) and ((`vishalecarter_june_setup`.`cscart_june_setupcategories`.`usergroup_ids` = '') or find_in_set(0,`vishalecarter_june_setup`.`cscart_june_setupcategories`.`usergroup_ids`) or find_in_set(1,`vishalecarter_june_setup`.`cscart_june_setupcategories`.`usergroup_ids`)) and (`vishalecarter_june_setup`.`cscart_june_setupcategories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_june_setupproducts_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "vishalecarter_june_setup.cscart_june_setupcategories.category_id"
            ],
            "rows_examined_per_scan": 2,
            "rows_produced_per_join": 0,
            "filtered": "6.34",
            "index_condition": "(`vishalecarter_june_setup`.`cscart_june_setupproducts_categories`.`product_id` in (235,70,122,115,156,90,175,196,43,104,76,129,127,121,103,95))",
            "cost_info": {
              "read_cost": "9.00",
              "eval_cost": "0.09",
              "prefix_cost": "30.55",
              "data_read_per_join": "6"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
43 185M
70 236M
76 240M
90 247M
95 248M
103 242M
104 242M
115 208M
121 244M
122 208M
127 209M
129 209M
156 181M
175 199M
196 232M
235 217M