The automatic alteration of formulas in Sheets when moving, copy-pasting, or drag-copying is not very sophisticated. It's also not configurable.
There may be more elegant workarounds, but I think the simplest thing to do is stop relying on it. If Sheets is bad at changing your formula, try a different formula that doesn't need to be changed in that staggered way. For example, A5 and A6 could be:
=if(INDIRECT("2019!D"&ROW()+1)=0,"",INDIRECT("2019!D"&ROW()+1))
=if(INDIRECT("2019!D"&ROW() )=0,"",INDIRECT("2019!G"&ROW() ))
This works because in A5 we want to refer to sheet 2019 row 6, so we use an INDIRECT reference to A5's row number (5) plus 1 (6).
When we're in A6, we instead want 2019 D6 and G6, so there's no adding 1.
If you can read my pseudo-formulas, your example sheet seems to follow the pattern:
if 2019!D–next row = 0, output nothing, otherwise 2019!D–next row
if 2019!D–this row = 0, output nothing, otherwise 2019!G–this row
<blank cell>
Using the above formulas, if you select those three cells (formula, formula, blank), then drag-copying them keeps them working the way you wanted.