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 = 389 
WHERE 
  cscart_products_categories.product_id IN (
    2281, 2379, 2346, 2301, 2081, 1947, 2157, 
    2207, 2142, 2121, 2375, 2088, 2089, 
    2090, 2087, 2158, 1787, 2105, 2133, 
    2125, 2092, 2093, 2046, 2045, 2044, 
    2047, 2049, 2048, 1995, 1943, 2120, 
    2094, 2385, 1989, 2314, 1951, 2096, 
    1988, 2098, 2097, 2099, 2199, 2200, 
    1948, 2095, 2100, 2124, 2101, 2134, 
    2198, 2291, 2103, 2307, 2166, 2208, 
    2102, 2104, 2345, 2143, 2119, 2144, 
    2362, 2016, 2319, 1999, 2019, 2321, 
    2322, 2018, 1928, 2017, 1998, 2020, 
    2071, 2320, 2333, 2080, 2325, 2113, 
    2324
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00102

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "26.99"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "2.15"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 68,
            "rows_produced_per_join": 2,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "7.63",
              "eval_cost": "0.27",
              "prefix_cost": "7.91",
              "data_read_per_join": "9K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscartdevel`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscartdevel`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`cscartdevel`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`cscartdevel`.`cscart_categories`.`usergroup_ids`))) and (`cscartdevel`.`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": [
              "cscartdevel.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 17,
            "rows_produced_per_join": 2,
            "filtered": "4.65",
            "index_condition": "(`cscartdevel`.`cscart_products_categories`.`product_id` in (2281,2379,2346,2301,2081,1947,2157,2207,2142,2121,2375,2088,2089,2090,2087,2158,1787,2105,2133,2125,2092,2093,2046,2045,2044,2047,2049,2048,1995,1943,2120,2094,2385,1989,2314,1951,2096,1988,2098,2097,2099,2199,2200,1948,2095,2100,2124,2101,2134,2198,2291,2103,2307,2166,2208,2102,2104,2345,2143,2119,2144,2362,2016,2319,1999,2019,2321,2322,2018,1928,2017,1998,2020,2071,2320,2333,2080,2325,2113,2324))",
            "cost_info": {
              "read_cost": "11.56",
              "eval_cost": "0.22",
              "prefix_cost": "24.09",
              "data_read_per_join": "34"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "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",
              "cscartdevel.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 2,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.54",
              "eval_cost": "0.22",
              "prefix_cost": "24.84",
              "data_read_per_join": "34"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1787 389M 0
1928 389M 0
1943 389M 0
1947 389M 0
1948 389M 0
1951 389M 0
1988 389M 0
1989 389M 0
1995 389M 0
1998 389M 0
1999 389M 0
2016 389M 0
2017 389M 0
2018 389M 0
2019 389M 0
2020 389M 0
2044 389M 0
2045 389M 0
2046 389M 0
2047 389M 0
2048 389M 0
2049 389M 0
2071 389M 0
2080 389M 0
2081 389M 0
2087 389M 0
2088 389M 0
2089 389M 0
2090 389M 0
2092 389M 0
2093 389M 0
2094 389M 0
2095 389M 0
2096 389M 0
2097 389M 0
2098 389M 0
2099 389M 0
2100 389M 0
2101 389M 0
2102 389M 0
2103 389M 0
2104 389M 0
2105 389M 0
2113 389M 0
2119 389M 0
2120 389M 0
2121 389M 0
2124 389M 0
2125 389M 0
2133 389M 0
2134 389M 0
2142 389M 0
2143 389M 0
2144 389M 0
2157 389M 0
2158 389M 0
2166 389M 0
2198 389M 0
2199 389M 0
2200 389M 0
2207 389M 0
2208 389M 0
2281 389M 0
2291 389M 0
2301 389M 0
2307 389M 0
2314 389M 0
2319 389M 0
2320 389M 0
2321 389M 0
2322 389M 0
2324 389M 0
2325 389M 0
2333 389M 0
2345 389M 0
2346 389M 0
2362 389M 0
2375 389M 0
2379 389M 0
2385 389M 0