K2 makes the value a valid null, and not the number that is seen. This is the .net DataTable object that does this.
When the value goes into the .net DataTable object, it sees the column as an Autonumber, and it automatically honors the identity and adds a number. This causes the "NULL" value to be converted to a "0".
To resolve this, change the “StoredProc Dataset Execution” setting on the SQL Service instance and set this to “true”. By default, this is set to “false”.