Are there some undecidable problems for which there are efficient heuristic algorithms, that succeed on a sufficiently large subset of inputs to be worth using?
The one application that comes to mind is program static analysis: clearly undecidable (assuming infinite memory – I believe that it is PSPACE-complete if memory is finite but no practical algorithm I know of makes use of this, other than to bound the values of pointers), but in some cases it is possible to prove that a program satisfies a certain property.