Você deve notar que os pilares funcionam como dicionários. Na sua sintaxe atual, para acessar o pilar, o nome da chave é "ftp-server.ftpusers", não ftpusers. Se você quiser as informações em uma hierarquia, a abordagem usual é:
ftp-server:
ftpusers:
user:
- user: user
- passhash: j2k3hk134123l1234ljh!"·$ser
- uuid: 1001
- guid: 1001
- home: /srv/ftp/user
- shel: /bin/false
Em seguida, no modelo:
{%- set ftp-server = pillar.get("ftp-server", {}) %}
{%- for users in ftp-server.get('ftpusers', {}).items() %}
{%- do_something() %}
{%- endfor %}