This AnyDice program might be helpful:
\ count number of rolls less than or equal to target, with bonus for each 1 rolled \
function: roll ROLL:s vs TARGET:n {
result: (ROLL <= TARGET) + (ROLL = 1)
}
loop TRAIT over {1..6} {
output [roll 1d6 vs 0] named "skill 0, trait [TRAIT]" \ special case \
loop SKILL over {1..6} {
output [roll SKILLd6 vs TRAIT] named "skill [SKILL], trait [TRAIT]"
}
}
In particular, the "mean" section of the summary output shows the average number of expected successes per roll for each possible combination of trait and skill values:
In fact, we don't really even need AnyDice for this, since it's quite easy to calculate the average number of successes per roll with a bit of (mostly) high school level math. Specifically, let \$S\$ be the player's skill and \$T\$ be the trait value. Then:
For the special case of skill = 0 (where you roll one die and succeed on 1) the average number of successes is simply \$\frac16\$ regardless of the trait value.
For skill = 1, the expected number of successes is equal to \$\frac T6 + \frac16 = \frac{1+T}6\$, where \$T\$ is the target trait value.
This is because you have a \$T\$ in six chance of rolling under or equal to the target, plus a one in six chance of rolling a one. Even though these are not independent events, due to the linearity of expectation we can simply add the expected numbers of successes from each of them together! (Alternatively, you can simply tabulate the number of successes for each of the six equally likely dice rolls and obtain the same result.)
For skill > 1, we can make use of the fact that your success counting mechanic is linear in the number of dice rolled. In other words, the distribution of the number of successes produced by any one of the rolled dice does not depend on the other dice.
Because of this, the average number of successes for skill \$S \ge 1\$ is simply \$S\$ times the average number of successes for skill 1 with the same trait value, or \$\frac{S(1+T)}6\$.
In other words, the average number of successes for your system is directly proportional to the product of \$S\$ and \$1+T\$, with the constant of proportionality being \$\frac16\$. That is, expect for the special case of \$S = 0\$, where the average number of successes per roll is \$\frac16\$ instead of zero.
(BTW, while your system as described doesn't allow a roll if \$T = 0\$, tweaking it to let the player roll \$S\$ dice and count each 1 rolled as one success in that case would make the formulas above valid for \$T = 0\$ as well. That's also what the AnyDice code above will simulate, if you change it to allow TRAIT
to be equal to 0.)
As for the exact distribution of possible success counts for each possible combination of skill and trait, the AnyDice program linked above will give you that too, if you switch from the Summary tab to the Normal tab.
One notable feature of your system that's apparent here is that, for trait = 1, the number of successes will always be even. This is because rolling a one will always give two successes, whereas in this case rolling above one will give no successes at all.