Say I use a ruler to measure the length of a string. The ruler is marked in 1cm intervals, giving the ruler itself ± 0.5cm absolute uncertainty.

Say I line one end of the string to 0cm of the ruler, and the other end reaches between 5 and 6cm, but visibly closer to 5cm.

Is the value reported as 5.0 ± 0.5cm, or 5.0 ± 1.0cm, as there could be error on both ends of the ruler?

On a side note, am I correct in thinking that the number of decimal places in the value should equal the number of decimal places in the absolute error? If the second scenario is true, should the error be reported as ±1.0cm or ±1cm?

Lining up the end of the string with the $0$ cm mark can be done very precisely because it's easy to align the two. I believe I could do this to within half a millimetre.
So in the situation you describe I would estimate I could measure the string length to about $\pm 2$ millimetres, despite the ruler only being marked in centimetres. I would give the length as (for example) $5.4 \pm 0.2$ cm.
In general the number of decimal places in the measurement and the error should match. If the error was really $1$ cm then I would give the length as $5 \pm 1$ cm.