Here's my explanation of what's going on! For the moment, let's ignore the ripserr output. You have two H_0 classes (connected components) born at filtration index 0, and then at filtration index 1 they merge, leaving only a single connected component. The 0-dimensional persistent homology barcode, therefore, consists of the intervals $[0,\infty)$ and $[0,1)$. At filtration index 0, you are correct that $H_0$ is generated by the 0-cycles $a$ and $c$. But that basis is not a "consistent'' basis for representing the persistent homology at all filtration indices. A better basis in order to understand the persistent homology is the 0-cycles $a+c$ and $a-c$. Indeed, the 0-cycle $a+c$ generates the interval $[0,\infty)$, and the 0-cycle $a-c$ generates the interval $[0,1)$, since at filtration index 1 the cycle $a-c$ becomes a boundary: it is the boundary of the 1-chain $[a,b]+[b,c]$ that consists of two edges, and whose boundary is $a-c$. Does that explantion for why the 0-dimensional persistent homology consists of the two intervals $[0,\infty)$ and $[0,1)$ make sense?

Now, moving to the ripserr output, I suspect that ripserr is using reduced homology instead of homology. One interpretation of reduced homology is simply to ignore the first connected component that appears. But another interpretation of reduced homology is to consider the first connected component that appears as a (-1)-dimensional homology class. This usage is consistent with the first example at https://en.wikipedia.org/wiki/N-connected_space, where one says that a space is "-1 connected" if and only if it is nonempty. In any case, in the ripserr output, since they are using reduced homology, the interval $[0,-\infty)$ has been bumped down to dimension -1, whereas the interval $[0,1)$ remains as a 0-dimensional persistent homology interval.