Warning: this is complicated and long. i posted this here just FYI. don't bother doing it because of its complication and the reason i mention in the end.
go to Send tab, enter the required information such as address to pay to, amount to pay,... and set a fee. now click preview to see your transaction. instead of signing it, click Copy to copy the hex of your unsigned transaction.
note the amount you are sending. lets say it is 1
BTC and your fee was 0.0001 so your final amount after the fee would be 0.9999
BTC.
now go to your transaction hex that you just copied.
find 99990000 satoshi in it which is f0b9f50500000000 in hex. replace it with 100000000 satoshi which is 00e1f50500000000 in hex (note that numbers are little endian).
you can use something like this:
https://www.rapidtables.com/convert/number/decimal-to-hex.html to do the conversion and then manually reverse it and add the zeros to increase it to 8 bytes. eg. 99990000 is 05F5B9F0 reverse is F0B9F505 and pad with zeros F0B9F50500000000 (upper or lower case doesn't matter)
copy the edited hex.
go back to electrum, import the new tx, check it 10 times to see if you have not messed anything up! sign. viola you have a transaction with 0 fee.
problem?
you will have 2 problems.
1. propagating your tx. nodes will reject it because majority of them have set their minrelaytxfee to 1 satoshi/byte (mostly by default)
2. getting it to be mined. miners have also set that minrelaytxfee and won't accept any tx with 0 fee even if they see it and even if the blocks are 90% empty.
...believe me i tried...