Serial doesn't initialise on Arduino Mega 2560 when not powered via the USB port

I am working on a project with a Mega 2560 and a Sim800L module.

Everything works fine, however if i don’t connect the USB port (at least once) and power only externally (either by Vin unregulated 7-12V or 5V regulated pin) the program will seem not to initialize serial in setup().

I found this which is related to the issue but not a proper workaround: https://forum.arduino.cc/index.php?topic=24642.0

Any ideas please?

edit: I can confirm using a resistor to short pins 0+1 together (serial) works but it is not a proper solution. This means you have to disassemble your project to access the resistor or add a switch if you want to use USB to debug later or upload new code. Another workaround which i need to test is to remove all Serial code (because i can in my specific project), but again this is not a proper solution.