This is a quote from the Go4 book, and it's the second of two points under the Applicability section ("Use the Singleton pattern when...")
This point is not really Singleton-specific; it just means that the client code is written against the base class interface, and is thus decoupled from (is not aware of) the concrete Singleton implementation. This is just dependency inversion present in many other patterns. I guess they included it as, if you don't have a need for subclassing, you can just use a static class (as in C#), or a bunch of free methods + some global state, or something along those lines.
In this approach, one of the problems is how to configure the GetInstance() method (or equivalent) to return the correct concrete implementation.
That said, note that Singleton is considered by many to be an antipattern, the main reason being that a Singleton, as normally implemented, is essentially a global variable, so all the code that uses it can become implicitly coupled.