I ran into code similar to this today.
SELECT AuditDomain, ObjectId, AuditSubdomain = CONVERT(VARCHAR(50), NULL), SubDomainObjectId = CONVERT(IN
Null has no data type. The purpose of a null is to represent an "unknown", both in value and type.
ISNULL() returns the datatype for the first argument with a data type presented to it.
http://msdn.microsoft.com/en-us/library/ms187928.aspx