Here is a little patch to HAL ETH driver to support initialization even if there is no cable connected. You just need to add to your hal_conf.h file:
#define ETH_WAIT_AUTONEG_ON_STARTUP 0U
It has been tested on STM32F407 and the same modification has been also ported to STM32F746 discovery boards. It would be nice to have this option added to the next release of hal drivers!