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 = 399 
WHERE 
  cscart_products_categories.product_id IN (
    1142, 2380, 1941, 2052, 1139, 2055, 1960, 
    1926, 1990, 2341, 2053, 1937, 1148, 
    1149, 1147, 1150, 1145, 1146, 2382, 
    1152, 1151, 1156, 1143, 1157, 1144, 
    2011, 1919, 1922, 1942, 1923, 1933, 
    1945, 1946, 1153, 1154, 1155, 2376, 
    2036, 2057, 2091, 1959, 1981, 2137, 
    2340
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00084

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "24.75"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.19"
      },
      "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": 16,
            "rows_produced_per_join": 1,
            "filtered": "2.74",
            "index_condition": "(`cscartdevel`.`cscart_products_categories`.`product_id` in (1142,2380,1941,2052,1139,2055,1960,1926,1990,2341,2053,1937,1148,1149,1147,1150,1145,1146,2382,1152,1151,1156,1143,1157,1144,2011,1919,1922,1942,1923,1933,1945,1946,1153,1154,1155,2376,2036,2057,2091,1959,1981,2137,2340))",
            "cost_info": {
              "read_cost": "10.88",
              "eval_cost": "0.12",
              "prefix_cost": "23.14",
              "data_read_per_join": "19"
            },
            "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": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.30",
              "eval_cost": "0.12",
              "prefix_cost": "23.56",
              "data_read_per_join": "19"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1139 348M
1142 348M
1143 348M
1144 348M
1145 348M
1146 348M
1147 348M
1148 348M
1149 348M
1150 348M
1151 348M
1152 348M
1153 348M
1154 348M
1155 348M
1156 348M
1157 348M
1919 398M
1922 398M
1923 398M
1926 348M
1933 398M
1937 348M
1941 348M
1942 398M
1945 400M
1946 400M
1959 348M
1960 348M
1981 348M
1990 348M
2011 398M
2036 400M
2052 348M
2053 348M
2055 348M
2057 400M
2091 348M
2137 348M
2340 348M
2341 348M
2376 400M
2380 348M
2382 400M