Because you did it here:
.createAlias("g.roles", "roles", JoinType.LEFT_OUTER_JOIN, Restrictions.eq("roles.id", roleId))
Use:
...
.createAlias("g.roles", "roles", JoinType.LEFT_OUTER_JOIN)
.setResultTransformer(Transformers.aliasToBean(RoleGroups.class))
.add(Restrictions.eq("roles.id", roleId));
But, I recomend do it with HQL. Thats a static query with a single restriction.