In lucene 5, PayloadTermQuery used a hardcoded default of 1.0 for terms without a payload. The replacing PayloadScoreQuery in lucene 6 just ignores those terms. This is unflexible and wrong for many use cases (for example using Payloads to deemphasize some terms, where terms without payload should result in maximum score instead of being ignored).
In my pull request I defer the decision on what to do with missing payloads to the scorePayload method of the similarity, which has to check the given payload for null and handle that case. I believe this breaks backwards compatibility?