GitLab's model is different - at least it was when I moved over to it. They charged for public repositories and gave you a free private ones as a sampler for trying out the platform. That approach is far less prone to getting overrun by millions of slopositories.
GitLab never tried to be the social media of software development. Theirs is a much simpler, classical model - one of the reasons I switched to them: you pay them money, they provide you services for that money.
That's fine. GitLab offers self-hosted solutions where companies run the service in their own infrastructure and limit who has access to it. The same cannot be said by GitHub, though.
That isn't true. Self hosted Github exists, and has for years now. From what I hear (from a friend who had to administer his company's instance) it's not a good product by any means, but it does exist.