What is the output on screen you get?
Try running something you know won't error out and write to STDERR instead of STDOUT. For instance:
my $out = `ls`;
...should NOT write to STDERR. If that works, but your original command doesn't, I'm pretty certain that something is happening that is writing to STDERR.
Try doing a git status with backticks and see what happens. Now move the test to a non-repo directory and compare the results (the latter will print to console, the former won't).