The system node pool is required by AKS and you can scale it down to 1. User node pools can scale to 0.
An awesome way to keep costs down while learning is by creating an AKS cluster with a system node pool using small VMs that you can scale down to 1 instance. You can then stop the cluster when not using it, effectively stopping all costs. When ready, simply start the cluster back. You can use the portal to stop/start or use the Azure CLI:
az aks stop -n myAKSCluster -g myResourceGroup
az aks start -n myAKSCluster -g myResourceGroup
Documentation: https://learn.microsoft.com/en-us/azure/aks/start-stop-cluster?tabs=azure-cli
The virtual node has no cost per se since it is a service running on the control plane. If you run serverless pods, they follow the Azure Container Instances price table.