Short version: There are two reasonable things type.__call__ could resolve to: a bound method representing the method used for calling type itself, or an unbound method representing the method used for calling instances of type. You're expecting the first result, but what you actually get is the second.
Long version:
some_callable(thing) is normally equivalent to some_callable.__call__(thing). For example, print(1) is equivalent to print.__call__(1) (as long as you have from __future__ import print_function turned on):
>>> print(1)
1
>>> print.__call__(1)
1
type is a callable, and type(thing) would be equivalent to type.__call__(thing), except that attribute lookup runs into a complication.
During the type.__call__ attribute lookup, Python searches type and its superclasses (just object) for a __dict__ entry with key '__call__'. Python also searches type's type and type's type's superclasses for such a __dict__ entry. (You can see the code responsible for invoking these searches in type_getattro, the C function that handles attribute lookup for types.) Since type is its own type, both of these searches find type.__dict__['__call__'].
One of these searches takes priority. The way the choice is made, and the reason the choice even matters, is the descriptor protocol. If the first search wins, then the descriptor protocol is applied as normal for finding a class attribute (descriptor.__get__(None, cls)); if the second search wins, the descriptor protocol is applied as normal for finding an instance attribute (descriptor.__get__(instance, cls)). The second search needs to win for type.__call__(thing) to behave like type(thing), but it would only win if type.__dict__['__call__'] was a data descriptor, and it's not.
The first search wins. The descriptor protocol is applied as normal for finding a class attribute, and the result of looking up type.__call__ is an unbound method. It represents the general __call__ method of instances of type, rather than the __call__ instance method of type-as-an-instance-of-type. It would need to be called as
type.__call__(type, 1)
to be equivalent to type(1).
After all that, you might be wondering how type(thing) works without running into all those complications. In terms of language semantics, Python only performs the second search when looking up type's __call__ method to call it, so the first search can't win because it doesn't even happen. In terms of actual implementation, CPython doesn't actually look up the __call__ method at all; it looks up type's type, goes to the C-level slot on type's type corresponding to __call__, and calls the function it finds. For a __call__ method implemented in Python, the C slot would contain a function that looks up and calls the Python method, but for a __call__ implemented in C, the C slot contains the __call__ implementation directly.