A SystemVerilog queue or dynamic array can be initialized by using an empty queue concatenation. Though other constructs, such as structs and associative arrays, cannot be initialized this way.
module empty_concatenations; int waiting[$]; int clients[]; string names[int]; typedef struct { int fruit; } fruit_basket; fruit_basket basket; initial begin waiting = {}; clients = {}; names = {}; basket = {}; end endmodule