Верхний и нижний внешние отступы пустого блока не исчезают, потому что они все равно остаются визуально незаметными, но они все равно существуют как часть блока. Даже если блок пустой, его внешние отступы все равно задают пространство вокруг него.
Что касается схлопывания внешних отступов при установке одинаковых верхнего и нижнего отступов, это происходит только в том случае, когда внешние отступы двух соседних блоков соприкасаются друг с другом. В вашем случае, если у блока div установлены верхний и нижний отступы по 300px, схлопывания не произойдет, потому что эти отступы не соприкасаются с другими элементами на странице.