Nenhum de seus blocos VirtualHost corresponde a 127.0.0.1 , portanto, o Apache pega o primeiro bloco encontrado.
Seus virtualhosts são diferenciados pelo ServerName . Se você quiser alcançar os dois /app1 e /app2 com 127.0.0.1 , será necessário colocar as duas ProxyPass diretivas no mesmo bloco VirtualHost .
<VirtualHost *:80>
ServerName app1.example.com
ServerAlias app2.example.com
ProxyRequests Off
ProxyPass /app1 http://127.0.0.1:6687/
ProxyPassReverse /app1 http://127.0.0.1:6687/
ProxyPass /app2 http://127.0.0.1:7687/
ProxyPassReverse /app2 http://127.0.0.1:7687/
</VirtualHost>
Ou use apenas o ServerName nos seus pedidos de http.
http://app1.example.com/app1/
http://app2.example.com/app2/
O /app* é redundante de qualquer forma, eu deixei cair e use ProxyPass / http://... com dois VirtualHosts.