если вы поместите в тот же тег
<form [formGroup]="myForm" #form1="ngForm">
"form1" - это myForm, а "firstName" и "lastName" не принадлежат myForm.
если вы используете
[ngModelOptions]="{standalone: true}"
ваши данные не принадлежат ни к какой форме.
Вы можете добавить в свои входные данные # firstnameID = "ngModel" и # lastnameID = "ngModel" и спросить о firstnameID.valid и lastnameID.valid
<form [formGroup]="myForm" #form1="ngForm">
<!-- few formControlName fields here -->
<mat-form-field>
<input matInput [(ngModel)]="firstname"
#firstnameID="ngModel"
[ngModelOptions]="{standalone: true}"
placeholder="First name" required />
<mat-error>This field is <strong>required</strong></mat-error>
</mat-form-field>
<mat-form-field>
<input matInput [(ngModel)]="lastname"
#lastnameID="ngModel"
[ngModelOptions]="{standalone: true}"
placeholder="Last name" required />
<mat-error>This field is <strong>required</strong></mat-error>
</mat-form-field>
<button mat-button [disabled]="!(myForm.valid) ||
!firstnameID.valid ||
!lastnameID.valid">Submit</button>
</form>
ПРИМЕЧАНИЕ: я полагаю, что это не так ответ, который вы ожидаете, но это так