You realize of course that none of the commands you've given actually edits the given file. Just checking the obvious here.
Since this is cygwin another culprit may be the CPM-style carriage returns Windows text files have. Annoyingly, plenty of things can't actually match a carriage return.
You use the following command to remove the blank lines from a file.
sed -i '/^$/d' filename
d - This is used to clear the content of the pattern space.
D - This is used to remove the first line in the pattern space.Not all the contents.
So,d is preferable than D.
My money's on Corona688 and carriage returns in the data. So far, all other suggestions in the thread are variations on attempts listed in the original post. If those failed, so will the suggestions.
Just my 2 cents
If Corona688's suggestion does not work, take a look at the file using od to determine if those blank lines contain an "invisible" byte other than \r :