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 = 7165 
WHERE 
  cscart_products_categories.product_id IN (
    100936, 100937, 100938, 100939, 100940, 
    100941, 100942, 100943, 100944, 100945, 
    100946, 100947, 100948, 100949, 100950, 
    100951, 100952, 100953, 100954, 100955, 
    100956, 100957, 100958, 100959, 100960, 
    100961, 100962, 100963, 100964, 100965, 
    100966, 100967, 100968, 100969, 100970, 
    100971, 100972, 100973, 100974, 100975, 
    100976, 100977, 100978, 100979, 100980, 
    100981, 100982, 100983
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01507

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "93.00"
    },
    "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": 103,
            "rows_produced_per_join": 103,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "10.60",
              "eval_cost": "10.30",
              "prefix_cost": "20.90",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (100936,100937,100938,100939,100940,100941,100942,100943,100944,100945,100946,100947,100948,100949,100950,100951,100952,100953,100954,100955,100956,100957,100958,100959,100960,100961,100962,100963,100964,100965,100966,100967,100968,100969,100970,100971,100972,100973,100974,100975,100976,100977,100978,100979,100980,100981,100982,100983))"
          }
        },
        {
          "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": 103,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "25.75",
              "eval_cost": "10.30",
              "prefix_cost": "56.95",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "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": 5,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "25.75",
              "eval_cost": "0.52",
              "prefix_cost": "93.00",
              "data_read_per_join": "13K"
            },
            "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')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
100936 7193M,7319
100937 7193M,7319
100938 7193M,7319
100939 7193M,7319
100940 7193M,7319
100941 7193M,7319
100942 7193M,7319
100943 7193M,7319
100944 7168M
100945 7168M
100946 7193M,7319
100947 7193M,7319
100948 7168M
100949 7193M,7319
100950 7193M,7319
100951 7193M,7319
100952 7193M,7319
100953 7193M,7319
100954 7193M,7319
100955 7193M,7319
100956 7193M,7319
100957 7193M,7319
100958 7193M,7319
100959 7193M,7319
100960 7193M,7319
100961 7193M,7319
100962 7193M,7319
100963 7193M,7319
100964 7193M,7319
100965 7193M,7319
100966 7193M,7319
100967 7193M,7319
100968 7193M,7319
100969 7193M,7319
100970 7193M,7319
100971 7167M,7183,7283
100972 7167M,7183,7283
100973 7167M,7183,7283
100974 7167M,7183,7283
100975 7167M,7183,7283
100976 7167M,7183,7283
100977 7167M,7183,7283
100978 7167M,7183,7283
100979 7225M,7226
100980 7225M,7226
100981 7225M,7226
100982 7167M,7183,7283
100983 7167M,7183,7283