Does my "hollow list" structure exist already?
This is a sparse array data structure, but I haven't seen this exact data structure before.  It looks like your code builds a balanced binary tree, but with a particularly clever representation in memory.

One difference between other balanced binary trees is that the running time of your approach is $O(\lg m)$ where $m$ is the largest index written, whereas other balanced binary tree data structures (e.g., red-black trees) have a $O(\lg n)$ running time where $n$ is the number of indices written to.  Since $m \ge n$, in principle your approach might be slower if $n$ is small (few elements have been written) but the indices are large.  However in practice I don't expect this to make much difference, ordinarily.