Well that's good news. I would have hated it if those selects returned a 't'. So ignore james for now, and let's just go for the bux. Assume that if you can fix that one, you can heal yourself later.
What is system_administrator_group_id() returning? Why did you use the user_ids of 1 and 3?
What does "select * from user_group_map where user_id in (1,3);" return?