bob = Person1('bob', 25) is really equivalent to something like
rv = Person1.__new__(Person1, 'bob', 25)
if isinstance(rv, Person1):
rv.__init__('bob', 25)
bob = rv
Calling a class doesn't immediately call the __init__ method. The class's __new__ method is called first to actually create the new instance, and if __new__ returns an instance of the class passed as the first argument, then __init__ is called before returning the value.
Going a step further, this is all encapsulated in type.__call__, so really the call to Person1('bob', 25) is something like
bob = type.__call__(Person1, 'bob', 25) # Person1 is an instance of type
where type.__call__ is what calls Person1.__new__ and, if appropriate, Person.__init__, and returns the resulting object for it to be assigned to bob.