Provo a risponderti nella speranza di non scrivere troppe sciocchezze.

Le variabili durano per la durata dello script.
Per poterla visualizzare dovresti poi richiamare la variabile con una select

esempio

set @tot = (select count(id) from tabella)
select @tot

ma in questo caso tanto varrebbe usare un'unica query

Sì, puoi dichiararla in maniera diretta

set @nome = 'pippo';
select *,@nome from tabella

Sul fatto che si possa memorizzare un array non credo. Attendi risposte da gente più preparata.