Das ist halt die Crux mit den diversen Treiberebenen.
Soweit ich weiß, arbeitet MS-Query intern mit dem ADODB-Treiber um auf ODBC zuzugreifen.
Deshalb kann MS-Query auch z.B. keinen erweiterten Unicode anzeigen.
Bei der Rückgabe an Office (Excel) wird dann mit der JET-Engine von Office gearbeitet.
Diese, wird auch als DAO (DataAccessObjects) bezeichnet, meldet sich an ODBC anders an, so dass der Treiber hier ggf. falsch reagiert.
MS-Query wurde seit Office 97/2000 nicht mehr geändert, deshalb läuft das immer noch.
Office ändert sich ja nun mal mit jeder Version und damit auch die Jet-Engine.
Was immer sich Microsoft da nun auch einfallen lässt.

Alternativ kann man ja auch Daten mit dem OLEDB-Treiber der AS/400 abholen.
Allerdings wird dies nicht von MS-Query uterstützt. Hier muss man native den SQL eingeben, der dann ausgeführt wird. Eine Datenvorschau gibts dazu auch nicht.

Auch wenn's blöd ist, aber die Zeitfelder musst du ggf. selber als CHAR-Felder casten, am Besten über eine View (wie oben schon mal vorgeschlagen).