I don't know about your niece, but if I'd be 12 again I think Scheme would have been ideal because the syntax is actually very easy and the language is very explicit (that's important for someone without programming experience).
She, of course, does not need to learn about continuations, macros etc. only the basics.
Although python (2.6) looks easy it has its ambiguities (for newcomers to programming); list.sort() <-> sorted(), default arguments issues, scoping issues, if a statement doesn't fit a line you have to enclose it in parantheses... the list goes on. Lua and especially Javascript aren't better either.
I can only say, although I had some experience in functional programming, that scheme was really an eye opening experience when I learned it in university. Plus, it made things clearer about things I did with Javascript/Python in the past.
DrScheme is a great environment for learning Scheme and programming in general and there is tons of learning material about scheme. Maybe that http://world.cs.brown.edu/ is something for your niece (I haven't read it).
Going from Scheme to Lua/Python/Javascript is then a small step and you have a saner picture about what happens in those languages.
Also going from Scheme to Lua won't be such a cultural shock. Just like the list is the primary data structure in Scheme the table is the primary data structure in Lua. And with Lua under her belt she can try LÖVE.
BTW, I think pygame is too low level. One can argue it is better for learning the concepts but I don't know. When I was younger I wanted to have results fast. In that respect I think LÖVE is better. And although I would not recommend Java for your niece there is a nice game framework called Pulpcore which let's you quickly get something done.