Solution 1:

Although this doesn't answer your question, it might still be helpful:

Using Mathematica (and an exhaustive amount of computing power), I have checked every number $(9n)!+n!+1$ for $n\le 2000$ with no prime found.

Finding a prime now seems very hard. For example, if we take the "probability" estimate by URL, we get that the "probability" of finding a prime for $2001\le n\le 3000$ is $$1-\prod_{n=2001}^{3000}\left(1-\frac{1}{\ln\left(\left(9n\right)!+n!+1\right)}\right)\approx0.00499232.$$

If you nonetheless want to continue the search for primes, here is my Mathematica code (just replace STARTHERE and STOPHERE by the lower and upper bounds of $n$ to check):

SetSharedVariable[primes, checked]; primes = {}; checked = {};
Monitor[
 ParallelDo[
  If[! PrimeQ[n + 1],
   If[PrimeQ[(9 n)! + n! + 1], AppendTo[primes, n]]
  ];
  AppendTo[checked, n],
  {n, STARTHERE, STOPHERE}, Method -> "FinestGrained"
 ],
 {Sort[checked], primes}
]

EDIT: I have updated the source code because we can skip numbers $n$ for which $n+1$ is a prime number as pointed out in the comments by Sil.

EDIT 2: Here is Python source code (sadly, the prime checking function of SymPy seems to be about ten times slower than that of Mathematica)

from multiprocessing import Pool
from os import cpu_count

from sympy.ntheory import primetest
from math import factorial

import time

START = 200
STOP  = 200

def check(n):
    num = factorial(9*n)+factorial(n)+1
    if primetest.isprime(num):
        print("Found prime for", n)
        return n

if __name__ == '__main__':
    start_time = time.time()
    with Pool(cpu_count()) as p:
        primes = p.map(check, list(range(START, STOP+1)))

    primes = [prime for prime in primes if prime]
    print("--- {} seconds ---".format(time.time() - start_time))

Solution 2:

This may or may not help: $$(kn)!+n!+1=\left(\prod_{m=2}^k\binom{mn}{n}\right){n!}^k+n!+1=n!\left(\left(\prod_{m=2}^k\binom{mn}{n}\right){n!}^{k-1}+1\right)+1$$ which is nearly recursive in $k$ Just chiming in .