Snippets cannot have ? & or = in their parameters, since they are used by the snippet to parse the parameter string.
There are two solutions to this.
1. Use something like ||q|| and ||e|| and ||a|| in the parameter string, and replace them with the appropriate symbols in your snippet.
2. Use a wrapper snippet:
$modx->runSnippet('MySnippet', array('url',=>'http://www.domain.com/index.php?id=xxx', 'param2'=>'value2'))
However, in the case of passing a link to a MODx page, you can use [~11~] and let MODx generate the URL for you.
[[MySnippet? &url=`[~11~]`]]