__init__ это обычный конструктор, __call__ вызов объекта как функцию. Изначально необходимо понять, что все в питоне является объектом в том числе и функции, поэтому метод __call__ есть и у функций. Этот факт очень легко проверить:
>>> def name():
... pass
...
>>> dir(name)
['__call__', ...
Если вы создадите класс с методом __call__ и создадите объект, у вас объект "превратится" в функцию. Например:
>>> class Name(object):
... def __call__(self, first, second):
... return first + second
...
>>> f = Name()
>>> f(1,2)
3
>>>
В питоне нет магических методов (как их принято называть в пхп). Есть например методы для перегрузки операторов (__getitem__, __setitem__, __index__), протокол итерации (__iter__, __next__), протокол контекстных менеджеров (__exit__, __enter__), управляемые атрибуты (__getattr__, __setattr__, __slots__, __getattribute__), протоколы дескрипторов (__get__, __set__, __delete__) ну и т.д. :)
P.S. как всегда рекомендую Лутца, там все очень подробно расписано