I don't have the Haskell book (no time to read it!), so I can't comment on the content there. I would be surprised if it described "* -> * -> *" as a type, higher-kinded or otherwise, because "* -> * -> *" is a kind, not a type. It pays to be careful which side of the "::" you are talking about!
In my opinion, the terminology of "higher-kinded type" is a bit broken. When I think of the word "type", I think literally of "*", so a type is any thing that can go to the left of ":: *", and nothing else. With this view, describing a type as having a "higher kind" seems dubious, because a type always has kind "*", by definition. Sure, a type constructor
can have kind "* -> *", or even "(* -> *) -> *", but a type constructor is not a type (in this view).
But then, "constructor" is hard to say, so when the context makes clear that one is talking about a constructor, one tends to drop that word.
So, when I hear "Foo is a higher-kinded type", I take it as shorthand for "Foo is a type constructor with a higher-order kind", because Foo must be a type constructor to have a higher-order kind. And when I hear "Haskell has higher-kinded types", I take it as shorthand for "Haskell has a type system which allows type constructors with higher-order kinds".
Now, what is a higher-order kind? I think Lindsay has it right: "(* -> *) -> *" is a higher-order kind, whereas "* -> * -> *" is merely a first-order kind.