Generally there's a problem with the expression, and I'll be didactic here for possible future reference.
The field token [Date] means the MC formatted version (and is a shortcut for default 1 mode: [Date,1]). Using [Date,0] means the field's raw data (an integer or floating point number, for this particular field). The IsEqual() mode you're using is 3, which means numeric compare. But the first argument to IsEqual(), the interpolated [Date] value will be a string value.
You can see this in play if you test. Clear a Date field in one file. Create an expression column with value [Date] and then a second expression column with value:
If(IsEqual([Date], 19, 3),
EQUAL,
NOT-EQUAL)
Select the Unassigned value in the first column, and you should see the result of the expression in column 2 is EQUAL. Clearly not expected. In fact, you should see that same value is returned for ALL files selected. Even more unexpected.
Now, replace the [Date] in both expression columns above with [Date,0], and you'll now see the internal representations of the DATE in column 1, and now both EQUAL and NOT-EQUAL values returned in column 2. Select the Unassigned value in column 1, and EQUAL will be returned; select other values in column 1 and you'll see NOT-EQUAL is returned. Ok, so different results, but clearly the EQUAL result for the file that has the empty [Date] is meaningless.
Now, remove the [Date,0] value from the second expression column, leaving only the comma argument separator:
If(IsEqual(, 19, 3),
EQUAL,
NOT-EQUAL)
All files now return EQUAL, the same result were were getting when [Date] was empty. Reason: It is simply meaningless to compare a NULL value numerically to an integer/float. So you need to protect from these types of comparisons.
Fortunately, there's a better, smarter function to use than IsEqual(), and that's Compare(). This will work for your needs:
If(Compare([Date,0], =, <place your other date field here>),
EQUAL,
NOT-EQUAL)