Deserialize a binary tree breadth-first
JavaScript (ES10),  81  80 bytes
Saved 1 byte thanks to @Shaggy
Expects -1 for a non-existing child node. Returns a string where each line contains all the nodes at this depth.

a=&gt;(g=r=&gt;a+a&amp;&amp;(r=r.map(x=&gt;+x||a.shift()||-1))+`
`+g(r.flatMap(x=&gt;[x=-!~x,x])))``

Try it online!