The documentation for 'isnull' states:
If expression1 parameter is a char datatype and expression2 is a literal parameter, the results from your select statement that includes isnull differ based on whether you enable literal autoparameterization. To avoid this situation, do not autoparameterize char datatype literals within isnull().
You should also check the setting of the 'ansinull' connection property. As you are running from ODBC, the setting may be different than with OpenClient and affecting the behaviour of the 'isnull' function.
Chris