Come si sà il percorso più corto è una linea retta.
Nel tuo secondo esempio, a parte errori di sintassi (se ci sono, non ho verificato sul campo), fai uso di un array di cui non mostri come è definito, per cui non ho modo di aiutarti.
Comunque, seppure fosse, se hai creato un array "String[]" (il che và pure bene), questo deve prima essere inizializzato con
dopodichè puoi utilizzarlo, altrimenti resta solo una definizione di variabile che punta a nulla (nessuno spazio in memoria, e quindi nessun puntatore all'array ritornato).
Dopodichè, concatenare un array è piuttosto semplice, ed è possibile farlo in diversi modi, uno dei quali è quello che tu hai usato "query &= bqe[0]".
Anche se nei tuoi esempi vedo inutile usare un array, ad ogni modo il tuo sistema diventa complesso se si vanno a trattare array con numerosi item. Se non ci sono particolari condizioni, una volta riempito l'array può essere concatenato in una semplice stringa con il metodo "Join(<carattere separatore>)", rendendo così molto semplice la codifica, in quanto fatta con un unico comando.
Sul fatto degli apici, credo tu sappia (e si vede dall'esempio) che il singolo apice per gambas significa una nota. Se inserito all'interno di una coppia di doppi apici, allora questo diventa un carattere, e farà parte della stringa inclusa nei doppi apici.
Così su due piedi, e con il trancio di esempio che hai mostrato, a meno di errori prima o dopo (o anche durante nelle parti omesse), non può darti errore, nè interpretare erroneamente le stringhe.
Forse è il caso che posti tutta la funzione/metodo che dà errore, ivi compresa la definizione delle variabili esterne (della classe, publiche e fuori funzione) utilizzate dal metodo/funzione.