In zsh, you can use a [glob qualifier](http://zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Qualifiers) to filter matches. The `e` modifier lets you specify arbitrary code; it's easier on the parsing to write a function and call it with the `+` modifier.
zsh -c 'deleted () { ! [ -e ${REPLY%\~} ] }; ls -ld **/*~(+deleted)'
If zsh isn't available, you can use find.
find ~ -name '*~' -type f -exec sh -c '[ -e "${0%\~}" ] && ls -ld "$0"' \;
or, faster:
find ~ -name '*~' -type f -exec sh -c 'for x; do [ -e "${x%\~}" ] && ls -ld "$x"' _ {} +