Você precisa citar corretamente sua consulta SQL. Se você observar o realce de sintaxe em sua pergunta (ou um IDE), notará que as aspas simples não estão funcionando conforme o esperado.
Altere as aspas externas para aspas duplas - se você quiser tudo em uma linha - ou aspas triplas se quiser em várias linhas:
query = """SELECT*
FROM TRANSACTION
WHERE DIA_DAT >=to_date('15.02.28 00:00:00', 'YY.MM.DD HH24:MI:SS')
AND (locations <> 'PUERTO RICO'
OR locations <> 'JAPAN')
AND CITY='LONDON'"""
df_ora = pd.read_sql(query, con=connection)