We haven't done a very good job at documenting the EntityGroup, but it's primarily intended for internal use, with the exception of setting handlers for its events.
As you've found, GetEntityGroups just returns the existing EntityGroups from the cache, it doesn't create or populate these groups. Each EntityGroup is usually created as data is queried, since the EntityGroup serves as the container for each entity type.
To make things confusing, the GetEntityGroup<T> and GetEntityGroup(type) methods on the EntityManager will both create the EntityGroup if it doesn't exist.
The only time you should need to use the EntityGroup is to set up handlers for the EntityPropertyChanging, EntityPropertyChanged, EntityChanging or EntityChanged events. In most, if not all, other cases there's a better way of doing something than using one of the properties or methods of the EntityGroup.