Your list is a list of rules. If you want to work with associations, do:
list = Association[a1->0,a2->3x,a4->0,a5->5x+3]
<|a1 -> 0, a2 -> 3 x, a4 -> 0, a5 -> 3 + 5 x|>
Then, there are many ways to select the nonzero associations, here are a couple examples:
Select[# =!= 0&] @ list DeleteCases[list, 0]
<|a2 -> 3 x, a5 -> 3 + 5 x|>
<|a2 -> 3 x, a5 -> 3 + 5 x|>
Use Join to append to another association:
Join[Association[b1->1, b2->3], Select[# =!= 0&] @ list]
<|b1 -> 1, b2 -> 3, a2 -> 3 x, a5 -> 3 + 5 x|>
Addendum
On the other hand, if you do want to work with lists of rules (as mentioned in the comments), you could do:
list = {a1->0, a2->3x, a4->0, a5->5x+3}; Select[#[[2]] =!= 0&] @ list DeleteCases[list, _->0]
{a2 -> 3 x, a5 -> 3 + 5 x}
{a2 -> 3 x, a5 -> 3 + 5 x}
Again, use Join to join two lists of rules:
Join[{b1->1, b2->3}, DeleteCases[list, _->0]]
{b1 -> 1, b2 -> 3, a2 -> 3 x, a5 -> 3 + 5 x}