Isso funciona para mim:
$ cat /run/user/1000/systemd/user/envtest3.service
[Service]
Environment=SETTINGS=\'{"a"=1}\'
Environment=SETTINGS2='{"a"=1}'
Type=oneshot
ExecStart=/bin/env
então
$ systemctl --user start envtest3.service
$ journalctl --user -n 2
-- Logs begin at wto 2014-05-27 15:33:38 EDT, end at sob 2014-10-04 11:44:13 EDT. --
paź 04 11:44:13 fedora21 env[27607]: SETTINGS='{"a"=1}'
paź 04 11:44:13 fedora21 env[27607]: SETTINGS2='{"a"=1}'
Como você pode ver, as variáveis são definidas corretamente.
Você também pode usar essas variáveis na própria unidade:
...
ExecStart=/bin/echo ${SETTINGS} ${SETTINGS2}
ExecStart=/bin/echo $SETTINGS $SETTINGS2
e há coisas surpreendentes aqui:
paź 04 14:27:50 fedora21-amd64 echo[30304]: '{"a"=1}' '{"a"=1}'
paź 04 14:27:50 fedora21-amd64 echo[30306]: {"a"=1} {"a"=1}
A expansão com chaves não tira as aspas, mas a outra faz. Não tenho certeza se isso é um bug ou não. A manpage diz "dividida em espaço em branco".
Edit: Estou executando o último git (v216-456-gba58907547).