You are going to have to alias in any columns from the second table as well, like:
SELECT categories.*, selfJoinedChildren.CategoryID AS ChildID, selfJoinedChildren.CategoryName AS ChildName from categories LEFT OUTER JOIN categories AS selfJoinedChildren ON categories.CategoryID = selfJoinedChildren.CategoryParentID
But really the more I think about it, you probably want to use a nested recordset instead so you can order them properly and get the nesting correct.