Well I don’t have the cube models so I substituted them with smiley.egg and frowney.egg, but that shouldn’t make much difference.
The output I’m getting is the following:
KIDS: render/smiley.egg/-GeomNode
render/smiley.egg/frowney.egg
As I expected, frowney.egg - which is parented to smiley.egg - is listed (in the second line, so it is the second child). The first child is the GeomNode of smiley.egg itself that is parented under a ModelRoot NodePath that Panda automatically creates for any model it loads.
You can get a better understanding of that hierarchy if you call cube1_copy.ls(), which yields the following output:
ModelRoot smiley.egg
GeomNode (1 geoms: S:(TextureAttrib))
ModelRoot frowney.egg T:(pos 10 10 10 hpr 60 0 0)
GeomNode (1 geoms: S:(TextureAttrib))
See this topic for ways to get rid of those pesky ModelRoots.