Consider this case, where the two different divs never exist at the same time:
<!-- Mutually exclusive containers -->
<ng-container *ngIf="predicate">
<div #myRef>
...
</div>
</ng-container>
<ng-container *ngIf="!predicate">
<div #myRef>
...
</div>
</ng-container>
And, in my component:
@ViewChild('myRef', {read: ElementRef}) private myRef: ElementRef;
// do something with myRef...

@ViewChildren('myRef', {read: ElementRef}) allMyRefs: QueryList<ElementRef>;