A couple of possible explanations come to mind. The most likely is maybe corruption. That is, a value is present in one index, but not in another. Another possibility is a bug in SQL Server, so that the query plan for the latter query missing the the ID for some reason. I can think of a few more reasons, but they are more esoteric.
I would recommend that you start with running DBCC CHECKDB(DW_staging) to see what it says. Share the output from this command. Please also share the output of "SELECT @@version".

PaymentId