A world in which there are monsters, and ghosts, and things that want to steal your heart is a world in which there are angels, and dreams and a world in which there is hope.
A good test to find the subject in a sentence is to make the sentence into a question. The part of the sentence that changes places with the auxiliary verb is the subject. The auxiliary verb in this sentence is the word is. If we make a question, we get:
- [Is] [a world in which there are monsters, and ghosts, and things that want to steal your heart] a world in which there are angels, and dreams and a world in which there is hope?
This shows that that phrase in brackets, [ ], is the noun phrase:
- a world in which there are monsters, and ghosts, and things that want to steal your heart.
... because this is the section of the sentence which changed places with is.
The Original Poster is correct that the sentence has been inconsistently punctuated. For me, a British English speaker, the sentence seems better with no commas at all:
- A world in which there are monsters and ghosts and things that want to steal your heart is a world in which there are angels and dreams and a world in which there is hope.
However, it's important to remember that comma usage is usually not about rules, but the personal choices and preferences of the writer.
Note: as pointed out helpfully by Fumblefingers below there's a quite a good case for putting a comma after dreams. This would help show that the structure of the complement phrase is:
- [a world in which there are {angels} and {dreams}], and [a world in which there is hope]
The structure isn't like this:
- [a world in which there are {angels} and {dreams} and {a world in which there is hope}]