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 = 7168 
WHERE 
  cscart_products_categories.product_id IN (
    95513, 95514, 95515, 95516, 95517, 95518, 
    95519, 95520, 95521, 95522, 95523, 
    95524, 95525, 95526, 95527, 95528, 
    95529, 95530, 95531, 95532, 95533, 
    95534, 95535, 95536, 95537, 95538, 
    95539, 95540, 95541, 95542, 95543, 
    95544, 95545, 95546, 95547, 95548, 
    95549, 95550, 95551, 95552, 95553, 
    95554, 96177, 96178, 96179, 96180, 
    96181, 96182
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00160

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "27.52"
    },
    "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": 48,
            "rows_produced_per_join": 48,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "5.08",
              "eval_cost": "4.80",
              "prefix_cost": "9.88",
              "data_read_per_join": "768"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (95513,95514,95515,95516,95517,95518,95519,95520,95521,95522,95523,95524,95525,95526,95527,95528,95529,95530,95531,95532,95533,95534,95535,95536,95537,95538,95539,95540,95541,95542,95543,95544,95545,95546,95547,95548,95549,95550,95551,95552,95553,95554,96177,96178,96179,96180,96181,96182))"
          }
        },
        {
          "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": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "0.24",
              "prefix_cost": "26.68",
              "data_read_per_join": "6K"
            },
            "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')))"
          }
        },
        {
          "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": 2,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.60",
              "eval_cost": "0.24",
              "prefix_cost": "27.52",
              "data_read_per_join": "38"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
95513 7172M
95514 7174M
95515 7174M
95516 7174M
95517 7172M
95518 7172M
95519 7172M
95520 7174M
95521 7174M
95522 7174M
95523 7175M
95524 7175M
95525 7175M
95526 7168M 0
95527 7172M
95528 7172M
95529 7168M 0
95530 7174M
95531 7174M
95532 7174M
95533 7175M
95534 7175M
95535 7175M
95536 7176M
95537 7176M
95538 7176M
95539 7176M
95540 7176M
95541 7176M
95542 7172M
95543 7172M
95544 7172M
95545 7169M
95546 7174M
95547 7174M
95548 7174M
95549 7175M
95550 7175M
95551 7175M
95552 7176M
95553 7176M
95554 7176M
96177 7176M
96178 7176M
96179 7176M
96180 7176M
96181 7179M
96182 7177M