One to One self-referentianship - Wrong mapping order

I've got one sqlalchemy model, declared in such way:

class Cat(BaseModel):  # BaseModel declares id and uuid field, also renames table to 'cats'
    name = db.Column(db.String(256))
    color= db.Column(db.String(256))

    next_cat_id = db.Column(db.Integer(), db.ForeignKey('cats.id'))
    next_cat = db.relationship("Cat", uselist=False)

So it should One-One rel. where previous cat points at the next one. I prepared some dummy data in my postgres table:

id  next_cat_id 
1   2
2   3
3   4
4   5
5   Null

Problem comes out when I try to get object of the next cat:

cat = Cat.query.filter_by(id=5).first()  # Gives cat with id=5 (OK)
> cat.next_cat_id  # Gives None (OK)
> cat.next_cat  # Gives cat with id=4 instead of None 

I thing sqlalchemy have some troubles with resolving relationship direction. I tried also to specify remote_side parameter, but still same problem occurs.