I would like to test the difference between the mean weights of 4 groups So, my dependent variable is continuos, but there are 3, 12, 26 and 56 observations in my groups. Should I use One-way ANOVA or Kruskal-Wallis H Test? If it is Kruskal-Wallis H Test I should be using and get a p-value < 0.05, which post-hoc test should I use next?
As @whuber points out in his comment above, a regression model is a far better and more powerful approach to analysing your dataset than an ANOVA. Splitting a continuous variable into bins causes major problems (discussed here and here). It is best avoided even in the absence of the imbalanced group problem that you are facing.
I agree with mkt. I've done many similar comparisons and I suggest you to try linear regression. Depending on the nature of your response variable, you can go for general linear models or generalized linear models. With generalized linear models, you define an error distribution family (including those other than Gaussian) depending on the nature of your response variable. With general linear models, you assume that the residuals or errors will follow a normal (or Gaussian) distribution. To determine what error family, you should examine your response variable. Things such as whether it assumes negative values or not, whether it's continuous or discrete, whether it's binomial or not etc. will be determining factors. There is a whole bunch of stuff to tell but I suggest you start slowly and learn linear regression well as it is used very commonly and frequently.
P.S. Remember you should always do some data exploration (could be box plots in your case, to have an idea about your data in the beginning and to see if it's worth further exploring)