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 (
    95551, 95552, 95553, 95554, 95557, 95683, 
    95702, 95703, 95944, 96177, 96178, 
    96179, 96180, 96181, 96182, 96183, 
    96184, 96185, 96186, 96187, 96188, 
    96190, 96191, 96192, 96193, 96194, 
    96778, 96779, 96780, 96781, 96782, 
    96783, 96784, 96785, 96786, 96787, 
    96791, 96792, 96793, 96794, 96795, 
    96796, 96797, 96798, 96799, 96800, 
    96801, 96802
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00153

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "56.08"
    },
    "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": 62,
            "rows_produced_per_join": 62,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "6.48",
              "eval_cost": "6.20",
              "prefix_cost": "12.68",
              "data_read_per_join": "992"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (95551,95552,95553,95554,95557,95683,95702,95703,95944,96177,96178,96179,96180,96181,96182,96183,96184,96185,96186,96187,96188,96190,96191,96192,96193,96194,96778,96779,96780,96781,96782,96783,96784,96785,96786,96787,96791,96792,96793,96794,96795,96796,96797,96798,96799,96800,96801,96802))"
          }
        },
        {
          "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": 62,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "15.50",
              "eval_cost": "6.20",
              "prefix_cost": "34.38",
              "data_read_per_join": "992"
            },
            "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": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "15.50",
              "eval_cost": "0.31",
              "prefix_cost": "56.08",
              "data_read_per_join": "8K"
            },
            "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
95551 7175M
95552 7176M
95553 7176M
95554 7176M
95557 7226,7225M
95683 7183,7283,7167M
95702 7183,7283,7167M
95703 7183,7283,7167M
95944 7226,7225M
96177 7176M
96178 7176M
96179 7176M
96180 7176M
96181 7179M
96182 7177M
96183 7177M
96184 7177M
96185 7177M
96186 7173M
96187 7173M
96188 7173M
96190 7174M
96191 7176M
96192 7176M
96193 7319,7193M
96194 7319,7193M
96778 7226,7225M
96779 7226,7225M
96780 7226,7225M
96781 7173M
96782 7173M
96783 7174M
96784 7174M
96785 7177M
96786 7177M
96787 7169M
96791 7226,7225M
96792 7172M
96793 7173M
96794 7173M
96795 7173M
96796 7173M
96797 7173M
96798 7173M
96799 7173M
96800 7173M
96801 7173M
96802 7173M