Not sure why that is happening, It may be related to the data source you are connecting to; However, a quick work around (and possibly a better practice) would be to exclude "Invalid" for your filter instead.
The reasons I say this may be a better practice are:
If the data is entered by humans (rather than a script) there is the possibility for misspellings depending on how the database is set up
If it is worse to accidentally exclude data (i.e. valid instead of Valid) than to accidentally include data (invalid instead of Invalid). If data is accidentally included, it shows up in the report and you know that it needs fixed, if data is unintentionally excluded it takes much longer to discover as it requires data validation rather than just seeing the issue in the report.
If that field every has a third possible value added to it (i.e. "Under Review")
Hope this helps!!
oh btw this field is actually a calculated field, it has a couple of condition to say 1 row is valid or not...
but ill try the exclude thing and let you know if it works.