To answer your specific question: no, there is no type whose values are lists containing only True. The promoted constructor 'True is just another type, but because it's not of the kind Type, it doesn't have any values.
To answer your more general question: yes, there is a use of promoted type constructors even without type families and GADTs. Phantom types are types with a type parameter that doesn't appear in its values at all. You can use them to have the type system do some bookkeeping for you. For example, suppose you want to keep track of whether you've escaped HTML in a String, to avoid injection attacks. You can write this:
data IsEscaped = Escaped | NotEscaped
newtype UserText (e :: IsEscaped) = UserText { getUserText :: String }
fromRawUserText :: String -> UserText 'NotEscaped
fromRawUserText = UserText
escape :: UserText 'NotEscaped -> UserText 'Escaped
escape (UserText s) = UserText (escapeHTML s)
You can then export from this module the type UserText, and the functions fromRawUserText, escape, and getUserText, but not the UserText constructor. Now you have a type that keeps track of whether it has been escaped or not. It will be an error to call escape on a String that's already escaped, and also to pass a UserText 'NotEscaped to a function that's expecting a UserText 'Escaped.
You could accomplish the same thing with something like
data NotEscaped
data Escaped
data UserText a = ...
but you lose the type information of knowing that UserText is supposed to be instantiated with Escaped or NotEscaped. So this is, essentially, untyped programming at the type level. Promoted data constructors let you do typed programming at the type level.