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 = 7143 
WHERE 
  cscart_products_categories.product_id IN (
    100171, 100172, 100173, 100174, 100175, 
    100176, 100177, 100178, 100179, 100180, 
    100321, 100322, 100323, 100324, 100325, 
    100326, 100374, 100375, 100376, 100377, 
    100378, 100379, 100380, 100381, 100382, 
    100383, 100598, 100599, 100600, 100601
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00062

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "34.47"
    },
    "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": 38,
            "rows_produced_per_join": 38,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "4.07",
              "eval_cost": "3.80",
              "prefix_cost": "7.87",
              "data_read_per_join": "608"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (100171,100172,100173,100174,100175,100176,100177,100178,100179,100180,100321,100322,100323,100324,100325,100326,100374,100375,100376,100377,100378,100379,100380,100381,100382,100383,100598,100599,100600,100601))"
          }
        },
        {
          "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": 38,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "9.50",
              "eval_cost": "3.80",
              "prefix_cost": "21.17",
              "data_read_per_join": "608"
            },
            "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": 1,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "9.50",
              "eval_cost": "0.19",
              "prefix_cost": "34.47",
              "data_read_per_join": "4K"
            },
            "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
100171 7145M
100172 7147M
100173 7145M
100174 7147M
100175 7146M
100176 7145M
100177 7146M
100178 7145M
100179 7146M
100180 7145M
100321 7145M
100322 7146M
100323 7145M
100324 7147M
100325 7146M
100326 7145M
100374 7301,7151M
100375 7301,7151M
100376 7302M
100377 7302M
100378 7302M
100379 7302M
100380 7301,7151M
100381 7301,7151M
100382 7301,7151M
100383 7301,7151M
100598 7301,7151M
100599 7326M
100600 7326M
100601 7301,7151M