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 = 7166 
WHERE 
  cscart_products_categories.product_id IN (
    100927, 100930, 100931, 100932, 100933, 
    100934, 100935, 100936, 100937, 100938, 
    100939, 100940, 100941, 100942, 100943, 
    100946, 100947, 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, 100982
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01605

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "94.80"
    },
    "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": 105,
            "rows_produced_per_join": 105,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "10.80",
              "eval_cost": "10.50",
              "prefix_cost": "21.30",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (100927,100930,100931,100932,100933,100934,100935,100936,100937,100938,100939,100940,100941,100942,100943,100946,100947,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,100982))"
          }
        },
        {
          "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": 105,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "26.25",
              "eval_cost": "10.50",
              "prefix_cost": "58.05",
              "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": "26.25",
              "eval_cost": "0.53",
              "prefix_cost": "94.80",
              "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
100927 7193M,7319
100930 7193M,7319
100931 7193M,7319
100932 7193M,7319
100933 7193M,7319
100934 7193M,7319
100935 7193M,7319
100936 7193M,7319
100937 7193M,7319
100938 7193M,7319
100939 7193M,7319
100940 7193M,7319
100941 7193M,7319
100942 7193M,7319
100943 7193M,7319
100946 7193M,7319
100947 7193M,7319
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
100982 7167M,7183,7283