${array[@]} is syntax that's only meaningful for arrays; a regular string can act like an array of length 1, but that syntax isn't implemented for positional parameters because there's no reason for it to be: Because a positional parameter cannot be an array, there is no possible valid, useful meaning "${1[@]}" could have as distinct from the meaning of "$1" or "${1}".
Being parsimonious with syntax extensions leaves currently-invalid syntax available for future extensions to give meaning to; if bash had defined meanings for all possible syntax, there would be no way to implement new extensions without breaking backwards compatibility. It is thus good language design[1] to avoid defining syntax that has no valid use.
[1] - Three words rarely used in that order to refer to bash!