Private classes (or private anything, really) are important because control of scope is important, due to the notion of encapsulation.
If you are building a library will private classes, your library can use those classes while anyone using your library will not be able to even see them. This can hide implementation-specific details that you wish to conceal.
If you are building a class that has private nested classes, the containing class can use those private classes without anyone else being able to see them. Again, you can use this to hide implementation-specific details that you wish to conceal.
If you do not hide implementation-specific details (e.g. by making a private class public) then it becomes more difficult to change the implementation, since you can't be sure that users of your library haven't created dependencies on those classes. But if they are private, you can change them, replace them, or remove them, all without any worry of disrupting external dependencies.