With a XenApp VM, all resources are shared between the users on that VM. This is the same as CPU, RAM, Storage, Network and GPU. If you allocate a 1GB Profile, all users will share that 1GB Profile.
For XenApp VMs, typically you’d assign an 8GB Profile. The reason you’d do this is two-fold. Firstly, you will have multiple users using the same resource, so there needs to be enough of it to go around. Secondly, when you allocate an 8GB Profile, you effectively “lock-out” the physical GPU (the bit that actually does the processing) for the users on that XenApp VM, so that no other VMs can access it. For example, if you allocated a 4GB Profile from the same GPU to 2 XenApp VMs, all users on both XenApp VMs would have access to the same single physical GPU, and depending on the user density and applications being run, you may have degraded performance. And if (again, for example) you have 25 users on each XenApp VM, then that’s 50 users that have access to the same GPU! (which is potentially too many).
As for the 32 users, yes, with a 1GB Profile a single M10 will support 32 users, but you’ll be using XenDesktop to do this, not XenApp. Although “technically”, you could use XenApp, but there wouldn’t be any point in doing that :-)