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 (
    101680, 101681, 101740, 101741, 101742, 
    101743, 101854, 101855, 101856, 101857, 
    101858, 101859, 101860, 101861, 101862, 
    101863, 101864, 101865, 101866, 101867, 
    101868, 101869, 101870, 101871, 101928, 
    101929, 101930, 101931, 101958, 101959, 
    101960, 101961, 101962
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01698

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "84.89"
    },
    "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": 94,
            "rows_produced_per_join": 94,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.69",
              "eval_cost": "9.40",
              "prefix_cost": "19.09",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (101680,101681,101740,101741,101742,101743,101854,101855,101856,101857,101858,101859,101860,101861,101862,101863,101864,101865,101866,101867,101868,101869,101870,101871,101928,101929,101930,101931,101958,101959,101960,101961,101962))"
          }
        },
        {
          "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": 94,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "23.50",
              "eval_cost": "9.40",
              "prefix_cost": "51.99",
              "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": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "23.50",
              "eval_cost": "0.47",
              "prefix_cost": "84.89",
              "data_read_per_join": "12K"
            },
            "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
101680 7283,7167M,7183
101681 7183,7283,7167M
101740 7167M,7283,7183
101741 7283,7167M,7183
101742 7183,7283,7167M
101743 7283,7183,7167M
101854 7167M,7283,7183
101855 7167M,7283,7183
101856 7167M,7283,7183
101857 7183,7167M,7283
101858 7283,7167M,7183
101859 7167M,7283,7183
101860 7167M,7183,7283
101861 7283,7183,7167M
101862 7183,7167M,7283
101863 7167M,7183,7283
101864 7283,7167M,7183
101865 7183,7283,7167M
101866 7183,7283,7167M
101867 7283,7183,7167M
101868 7167M,7283,7183
101869 7167M,7283,7183
101870 7183,7167M,7283
101871 7183,7283,7167M
101928 7183,7167M,7283
101929 7183,7167M,7283
101930 7167M,7183,7283
101931 7167M,7183,7283
101958 7193M,7319
101959 7319,7193M
101960 7193M,7319
101961 7319,7193M
101962 7319,7193M