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, 
  product_position_source.position AS position 
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') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 7148 
WHERE 
  cscart_products_categories.product_id IN (
    98955, 98956, 98957, 98958, 98959, 98960, 
    98961, 98962, 98963, 98964, 98965, 
    98966, 98967, 98968, 98969, 98970, 
    98971, 98972, 98973, 98974, 98975, 
    98976, 98977, 98978, 98979, 98980, 
    98981, 98982, 98983, 98984, 98985, 
    98986, 98987, 98988, 98989, 98990, 
    98991, 98992, 98993, 98994, 98995, 
    98996, 98997, 98998, 98999, 99000, 
    99001, 99002, 99003, 99004, 99005, 
    99006, 99007, 99008, 99009, 99010, 
    99011, 99056, 99057, 99058, 99059, 
    99060, 99061, 99062, 99063, 99064, 
    99065, 99066, 99067, 99133, 99141, 
    99142, 99151, 99152, 99169, 99170, 
    99248, 99257, 99262, 99322, 99323, 
    99324, 99325, 99326, 99327, 99328, 
    99329, 99333, 99334, 99335, 99336, 
    99337, 99338, 99339, 99340, 99341
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00262

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "85.44"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 150,
            "rows_produced_per_join": 150,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "15.31",
              "eval_cost": "15.00",
              "prefix_cost": "30.31",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98955,98956,98957,98958,98959,98960,98961,98962,98963,98964,98965,98966,98967,98968,98969,98970,98971,98972,98973,98974,98975,98976,98977,98978,98979,98980,98981,98982,98983,98984,98985,98986,98987,98988,98989,98990,98991,98992,98993,98994,98995,98996,98997,98998,98999,99000,99001,99002,99003,99004,99005,99006,99007,99008,99009,99010,99011,99056,99057,99058,99059,99060,99061,99062,99063,99064,99065,99066,99067,99133,99141,99142,99151,99152,99169,99170,99248,99257,99262,99322,99323,99324,99325,99326,99327,99328,99329,99333,99334,99335,99336,99337,99338,99339,99340,99341))"
          }
        },
        {
          "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": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 7,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "37.50",
              "eval_cost": "0.75",
              "prefix_cost": "82.81",
              "data_read_per_join": "19K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 7,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.88",
              "eval_cost": "0.75",
              "prefix_cost": "85.44",
              "data_read_per_join": "120"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98955 7194M
98956 7194M
98957 7194M
98958 7194M
98959 7194M
98960 7194M
98961 7194M
98962 7194M
98963 7194M
98964 7194M
98965 7194M
98966 7194M
98967 7194M
98968 7194M
98969 7194M
98970 7194M
98971 7194M
98972 7194M
98973 7194M
98974 7194M
98975 7194M
98976 7194M
98977 7194M
98978 7194M
98979 7194M
98980 7194M
98981 7194M
98982 7194M
98983 7194M
98984 7194M
98985 7194M
98986 7194M
98987 7194M
98988 7194M
98989 7194M
98990 7194M
98991 7194M
98992 7194M
98993 7194M
98994 7194M
98995 7194M
98996 7194M
98997 7194M
98998 7194M
98999 7194M
99000 7194M
99001 7194M
99002 7194M
99003 7194M
99004 7194M
99005 7194M
99006 7194M
99007 7194M
99008 7194M
99009 7194M
99010 7194M
99011 7194M
99056 7241,7309,7346,7208M
99057 7241,7309,7346,7208M
99058 7241,7309,7346,7208M
99059 7241,7309,7346,7208M
99060 7241,7309,7346,7208M
99061 7241,7309,7346,7208M
99062 7241,7309,7346,7208M
99063 7241,7309,7346,7208M
99064 7241,7309,7346,7208M
99065 7241,7309,7346,7208M
99066 7341,7342,7343,7157M
99067 7241,7309,7346,7208M
99133 7263M
99141 7263M
99142 7263M
99151 7263M
99152 7263M
99169 7263M
99170 7263M
99248 7263M
99257 7263M
99262 7263M
99322 7263M
99323 7263M
99324 7241,7309,7346,7208M
99325 7241,7309,7346,7208M
99326 7241,7309,7346,7208M
99327 7241,7309,7346,7208M
99328 7241,7309,7346,7208M
99329 7241,7309,7346,7208M
99333 7194M
99334 7194M
99335 7194M
99336 7194M
99337 7194M
99338 7194M
99339 7194M
99340 7194M
99341 7194M