There is no way to allocate any type of variable in SystemVerilog without assigning it a value. You might as well just copy the input array to the output array of the function directly, and then multiplying each element in place
You also need to think about why you would want to use a queue versus a dynamic array.
The structure of a queue is optimized so that adding a single element does not require reallocation of memory, nor does it require contiguous memory for any size of the queue. However, you pay a penalty in memory size for each element, as well as overhead in allocating each element. The structure of a dynamic array is such that it allocates a contiguous block of memory at once. Resizing the array could require re-allocating the entire array.
So it’s best to use a dynamic array if the array size will be known at its initialization and will never change during the array’s lifetime.