Le tue lezioni ORM sembrano a posto. È la query che non è corretta.
In breve, ricevi quell'errore "InstrumentedAttribute" perché stai usando in modo improprio session.query metodo.
Dai documenti
il session.query il metodo accetta come argomenti "SomeMappedClass" o "entities". Hai 2 classi mappate definite, Tournament e TournamentMaster . Queste "entità" sono in genere le tue classi mappate (oggetti ORM) o una colonna di queste classi mappate.
Comunque stai passando Tournament.tournament_master.id_ che non è una "MappedClass" o una colonna e quindi non un'"entità" che session.query può consumare.
Un altro modo per vederlo è chiamando Tournament.tournament_master.id_ stai tentando di accedere a un record (o istanza) "TournamentMaster" dalla classe "Torneo", il che non ha senso.
Non è molto chiaro per me cosa esattamente speri di restituire dalla query. In ogni caso però ecco un inizio.
Invece di
qry = session.query(Tournament.tournament_master.id_).limit(100)
prova
qry = session.query(Tournament, TournamentMaster).join(TournamentMaster).limit(100)
Questo potrebbe anche funzionare (non testato) per restituire solo il campo id_, se questa è la tua intenzione
qry = session.query(Tournament, TournamentMaster).join(Tournament).with_entities(TournamentMaster.id_).limit(100)