Supplying parameterless callback to function expecting void * param
When I compile your code with gcc (9.1.1 ) and use the command line option -Wall, I get a warning:
cb.c:20:10: warning: passing argument 1 of ‘call’ from incompatible pointer type [-Wincompatible-pointer-types]
   20 |     call(noparams, context); // warning expected
      |          ^~~~~~~~
      |          |
      |          void (*)(void)

So you might want to up the warning level on the compilation. You could suppress this warning with a cast -- it is ok to cast function pointers.
However the real problem is that it is, I believe, undefined behaviour to call a function (either directly or through a function pointer) with a different number of arguments from those given in its definition. (You might want to check this by asking a stack overflow question with tags C and language lawyer).
If it is indeed UB then you have to avoid it. It might appear to work with a particular compiler, but fail arbitrarily with a different compiler, or even with the same compiler on a different platform.
What you have to do, I think, is to provide a callback with the demanded arguments. You could do this, for example, by adding
void noparams_wrap(void* p) {
    noparams();
}

and passing noparams_wrap to call() rather than noparams() itself.