Does it make sense to consider a category of all NP-complete problems, with morphisms as poly-time reductions between different instances? Has anyone ever published a paper about this, and if so, where can I find it?
The area you want to look at is called "implicit complexity theory". A random and incomplete fistful of names to Google for are Martin Hofmann, Patrick Baillot, Ugo Dal Lago, Simona Ronchi Della Rocca, and Kazushige Terui.
The basic technique is to relate complexity classes to subsystems of linear logic (the so-called "light linear logics"), with the idea that the cut-elimination for the logical system should be complete for the given complexity class (such as LOGSPACE, PTIME, etc). Then via Curry-Howard you get out a programming language in which precisely the programs in the given class are expressible. As you might expect from the mention of linear logic, these all these systems then give rise to monoidal closed categories of various flavors, which leaves you with a purely algebraic and machine-independent characterization of various complexity classes.
One of the things that make this area interesting is that neither traditional complexity nor logical/PL methods are entirely appropriate.
Since the categories involved typically have closed structure, the combinatoric methods favored by complexity theorists often break down (since higher-order programs tend to resist combinatorial characterizations). A typical example of this is the failure of syntactic methods to handle contextual equivalence. Similarly, the methods of semantics also have trouble, since they are often too extensional (since traditionally semanticists have wanted to hide the internal structure of functions). The simplest example I know here is the closure of LOGSPACE under composition: this is AFAIK only possible due to dovetailing and selective recomputation, and you can't treat the problems as pure black boxes.
You will likely also want to have some familiarity with game semantics and Girard's Geometry of Interaction (and their precursor, Kahn-Plotkin-Berry's concrete data structures) if you get seriously into this area -- the ideas of token-passing representations of higher-order computations used in this work supply a lot of the intuitions for ICC.
Since I've pointed out the central role of monoidal categories in this work, you might reasonably wonder about the connections to Mulmuley's GCT. Unfortunately, I can't help you here, since I simply don't know enough. Paul-André Melliès might be a good person to ask, though.
It's possible to categorify lots of things, but that doesn't necessarily mean they're interesting categories. So the answer to "does it make sense" depends on how you mean.
As for predicting whether it'd be interesting, assume some appropriate definition of reductions such that it forms a category, NPC. Category theoretically interesting questions would be things like asking whether NPC has various limits or colimits (e.g., products, coproducts, pullbacks, pushouts,...). So before going about the work of formalizing things, it'd be good to sit down and think about what these co/limits would mean and whether that meaning would be interesting to know about. If we assume NPC has pullbacks, then does the ability to take the pullback of two reductions mean anything special? Questions like these seem like they could be interesting if we wanted to figure out what the "atomic" NP-complete problems are, or how multiple NP-complete problems (or their reductions) could be combined; but complexity folks typically aren't interested in those sorts of questions IME.
Some follow on questions would be things like: does NPC have any interesting subcategories? is NPC a subcategory of any interesting larger categories? We already know a good deal about how NP-complete problems relate to other classes of problems, so the presumptive answer to these questions is "of course". But to put a finer point on it, what does considering these relationships from a category theoretic perspective offer that other perspectives do not? One thing that CT may offer is the question of whether there are any non-trivial adjunctions between NPC and another category. Of course, adjunctions are mainly interesting when the categories behind them are themselves interesting, so if NPC doesn't have a lot of special structure then knowing about NPC-adjunctions won't really offer much.
As for particular references, I don't know of any off hand but the links in the comments by Sadeq, Ramprasad, Kaveh should provide somewhere to start.