Why does John sing the death song in "By the Waters of Babylon"?
Let us remember the context of when John sings the death song. Having already ventured far beyond where his tribe normally roam and facing significant danger in the form of the Forest People and the Dead Places, John finally reaches the great river, across which he can see the Place of the Gods. Even though he feels he has done enough to show himself to be a man and a priest, he recognises that some internal force is driving him to cross the river and enter the Place of the Gods, something that nobody else in living memory has ever done, and which represented death to him. Note what John tells us about this internal conflict he experiences as he longs to go back but feels he can't:
If I went to the Place of the Gods, I would surely die, but, if I did not go, I could never be at peace with my spirit again. It is better to lose one's life than one's spirit, if one is a priest and the son of a priest.
Thus it is that he prepares himself to cross the river and enter the Place of the Gods, which he associates with death. Because of this, he sings the death song and "painted [himself] for death," as this is what he expects to happen to him.