Conditional formatting not working

I have 3 conditional formatting rules, one of which isn't working. I've moved the rule in question to the top of the list and it still doesn't work. I have a column with dates in, which I compare against a predefined date elsewhere in the sheet. I'll explain below:

If I do JUST this, it works:

=INDIRECT("D"&ROW())<>""

If I do JUST this, it also works:

=INDIRECT("D"&ROW())

But if I combine them together with the AND() function, it doesn't work:

My test:
If the date in INDIRECT("D"&ROW()) is after TODAY() then I want to change the background colour of that row.

However, some rows won't actually have any data in INDIRECT("D"&ROW()) at all, in which case the background colour still changes, so I wanted to test to see if there was any data there first before applying the date comparison.

I'm working on a range of rows, and when I tried using a single cell reference (even though the formula applied to the range, weird things started to happen!