Is there an effective way for public key generation in homomorphic encryption schemes? Is there any way to effectively generate valid distributed public key in schemes like ElGamal or Benaloh for a number of participants? There's no need in private keys since there's no intent to decrypt messages at all, only to encrypt them securely.

As far as I know, there's no effective way to generate distributed key pair in Benaloh.
I must confess to not fully understanding your question but hopefully this will assist.

To generate a public key in Elgamal, you need a group (e.g., subgroup $\mathbb{G}_q$ of $\mathbb{Z}_p$ for large primes $p,q$) and a generator ($g$ where $\mathrm{order}(g)=q$). 

A secret key is chosen from $x \in_r \mathbb{Z}_q$ and the public key is computed as $y=g^x$.


If you want to generate a public key $y$ without caring about $x$, you can use any element of $\mathbb{G}_q$. 
If you want to ensure that no one knows $x$ for a given $y$, you could compute $y_i=\mathcal{H}(g)+i$ for $i=\{0,1,2,\ldots\}$ until you find a $y_i \in \mathbb{G}_q$.


For Benaloh (or Paillier), the first point is the same, the second is more complicated if you want to additionally ensure that no one knows the factorization of $n=pq$ (however there are techniques to do this). 

Finally, I do not see any applications of encrypting without requiring decryption. If you simply want to obfuscate a value, there are more efficient primitives you can use. If you don't need decryption (per se) but do want to do things like plaintext equality tests, these require a decryption key!