La tua funzione restituisce un output formattato anziché la tabella stessa:
$DataSet.Tables[0] | ft -AutoSize
Rimuovere il | ft -AutoSize
e sarai in grado di lavorare con i dati della tabella effettivi:
$Result1 = Invoke-MySql -Query $Query1 |
Where-Object { $_.gid -eq 2122322 } |
Select-Object -Expand key3
Format-*
I cmdlet servono per la formattazione dei dati quando vengono presentati all'utente. Mai utilizzarli su dati che dovrebbero essere oggetto di ulteriore trattamento (in pratica, non utilizzarli mai all'interno di una funzione).